2012-02-08 8 views
0

나는 cxf webservice를 만들고 있습니다.cxf webservice의 RestTemplate

POST 변수가있는 HTTP를 사용하여 웹 서비스의 일부 정보를 다른 서비스로 보내고 싶습니다.

다른 Spring MVC 프로젝트에서 완벽하게 작동하는 RestTemplate을 사용하고 싶습니다.

cxf webservice는 Fuse ESB에서 실행됩니다. 내가 FUSE ESB의 URL에서 내 웹 서비스를 볼 수 있습니다 해결하는 변수 아무것도없는 빈 CXF 웹 서비스 생성

: http://localhost:8181/cxf/

을하지만를 내가 컨트롤러에 내 코드를 추가하고있어 추가로 난에 의존성을 추가 해요 때 pom.xml을 org.apache.cxf.transport.http으로 변경하면 내 웹 서비스가 공개되지 않습니다.

package com.esb.cxf; 

import javax.ws.rs.GET; 
import javax.ws.rs.POST; 
import javax.ws.rs.ConsumeMime; 
import javax.ws.rs.Path; 
import javax.ws.rs.ProduceMime; 
import javax.ws.rs.FormParam; 

import java.io.BufferedReader; 
import java.io.DataOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.*; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.logging.Logger; 
import java.io.*; 

import javax.servlet.http.Cookie; 
import javax.servlet.http.HttpSession; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 


import org.springframework.web.client.RestTemplate; 

@Path("/") 
@ProduceMime({ "application/json" }) 
public class SSO { 

    private String urlSCS = "..."; 

    // private String urlSCS = "..."; 

    @POST 
    @Path("/user") 
    @ProduceMime({ "application/json" }) 
    public String user(@FormParam("token") String token) { 

     RestTemplate restTemplate = new RestTemplate(); 

     String result = restTemplate.getForObject("http://localhost:8080/TEST/?var=test", String.class); 


     return token; 


    } 



} 

내 pom.xml 파일은 다음과 같습니다 :

내 컨트롤러는

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.esb.cxf</groupId> 
    <artifactId>cxfSSO3</artifactId> 
    <packaging>bundle</packaging> 
    <version>1.0.0</version> 
    <name>Apache ServiceMix :: CXF WSDL First OSGi Bundle</name> 
    <properties> 
     <java-version>1.6</java-version> 
     <org.springframework-version>3.0.6.RELEASE</org.springframework-version> 
     <org.aspectj-version>1.6.9</org.aspectj-version> 
     <org.slf4j-version>1.5.10</org.slf4j-version> 
    </properties> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-frontend-jaxrs</artifactId> 
      <version>2.1.4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-transports-http</artifactId> 
      <version>2.1.4</version> 
     </dependency> 
    <dependency> 
      <groupId>org.apache.geronimo.specs</groupId> 
      <artifactId>geronimo-ws-metadata_2.0_spec</artifactId> 
      <version>1.1.2</version> 
     </dependency> 

    <!-- Spring --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${org.springframework-version}</version> 
      <exclusions> 
       <!-- Exclude Commons Logging in favor of SLF4j --> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${org.springframework-version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${org.springframework-version}</version> 
     </dependency> 

    <dependency> 
      <groupId>javax.xml.bind</groupId> 
      <artifactId>jaxb-api</artifactId> 
      <version>2.1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.servicemix.bundles</groupId> 
      <artifactId>org.apache.servicemix.bundles.commons-httpclient</artifactId> 
      <version>3.1_5</version> 
     </dependency> 


     <!-- Servlet --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.1</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <defaultGoal>install</defaultGoal> 
     <plugins> 
       <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.0.2</version> 
       <configuration> 
        <source>1.5</source> 
        <target>1.5</target> 
        <encoding>UTF-8</encoding> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-resources-plugin</artifactId> 
       <version>2.4.3</version> 
       <configuration> 
        <encoding>UTF-8</encoding> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.felix</groupId> 
       <artifactId>maven-bundle-plugin</artifactId> 
       <version>2.1.0</version> 
       <extensions>true</extensions> 
       <configuration> 
        <instructions> 
         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> 
         <Import-Package> 
          javax.jws, 
          javax.wsdl, 
          javax.xml.bind, 
          javax.xml.bind.annotation, 
          javax.xml.namespace, 
          javax.xml.ws, 
          javax.ws.rs, 
          javax.ws.rs.core, 
          javax.servlet, 
          javax.servlet.http, 
          META-INF.cxf, 
          META-INF.cxf.osgi, 
          org.apache.cxf.bus, 
          org.apache.cxf.bus.spring, 
          org.apache.cxf.bus.resource, 
          org.apache.cxf.configuration.spring, 
          org.apache.cxf.resource, 
          org.apache.cxf.jaxws, 
          org.apache.cxf.transport.http, 
          org.springframework.beans.factory.config, 
          org.springframework.web.client, 
          org.springframework.web, 

          org.apache.commons.httpclient, 
          org.apache.commons.httpclient.methods 
         </Import-Package> 

          <DynamicImport-Package>com.esb.cxf.*</DynamicImport-Package> 

        </instructions> 
       </configuration> 
      </plugin> 

     </plugins> 
    </build> 
</project> 

내가 pom.xml 파일에서

org.springframework.web.client, 
           org.springframework.web, 

RestTemplate restTemplate = new RestTemplate(); 

     String result = restTemplate.getForObject("http://localhost:8080/TEST/?var=test", String.class); 
삭제됩니다 http://localhost:8181/cxf/

또한 FUSE ESB가 난 내 CXF 웹 서비스에 org.springframework.web.client를 사용할 수 BundleEvent INSTALLED

를 제외하고 '로그 서비스'에 아무 것도 보여주지 : 컨트롤러에서 17,451,515,

후 웹 서비스는 FUSE ESB의 URL에서 내 웹 서비스에서 다시 보여?

답변

0

ESB에 스프링 및 스프링 웹 가져 오기를 시도하십시오. karaf 콘솔 유형 기능 : 설치 스프링; 기능 : install spring-web;

해야 할 일 :