2011-02-17 15 views
11

क्या कोई ढांचा, पुस्तकालय या तकनीक है जो एक संयुक्त सेवा में जेएक्स-आरएस और जेएक्स-डब्ल्यूएस (या समतुल्य कार्यक्षमता) को जोड़ती है, एक ही तरीके से दो अंत बिंदुओं का उपयोग करने के लिए (एक SOAP और एक आरईएसटी) डब्ल्यूसीएफ में एक ही सेवा के लिए?संयुक्त जेएक्स-आरएस और जेएक्स-डब्ल्यूएस

उत्तर

1

मिखाइल के उत्तर में जोड़ें, सीएक्सएफ की कॉन्फ़िगरेशन का उदाहरण। अधिक जानकारी पर http://cxf.apache.org/docs/jax-rs-and-jax-ws.html#JAX-RSandJAX-WS-JAXRSandJAXWS

<!-- JAX-RS --> 
    <jaxrs:server id="customerService" address="/"> 
    <jaxrs:serviceBeans> 
     <ref bean="customerService" /> 
    </jaxrs:serviceBeans> 
    </jaxrs:server> 

    <!-- JAX-WS --> 
    <jaxws:endpoint implementor="#customerService" 
    address="/CustomerWorld" wsdlLocation="..."/> 

    <bean id="customerService" class="demo.jaxrs.server.CustomerService" /> 

अद्यतन है: पीटर Szanto https://github.com/ExampleDriven/cxf-example

2

यह एक मानक बिल्ला विन्यास के साथ संभव है पर एक Maven प्रोजेक्ट बनाया। सेवाओं के लिए बस अलग यूआरएल का प्रयोग करें। मैंने जेएक्स-डब्ल्यूएस सेवा को "एसओएपी /" और अन्य लोगों को लोअरकेस अक्षरों के पीछे रखने का फैसला किया। यदि आप यूआरएल में "आराम" का उपयोग करना चाहते हैं, तो यह और भी आसान है, लेकिन अंतिम उपयोगकर्ताओं के लिए यह अच्छा नहीं लग रहा है। एक सूरज-jaxws.xml भी जोड़ने के लिए मत भूलना। मैंने `init-params छोड़े क्योंकि वे सामान्यीकृत यूआरएल के लिए उपयोगी हैं। यदि आप चाहें तो आप सभी को छोड़ सकते हैं।

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="webapp" 
    version="2.5"> 
    <display-name>displayname</display-name> 

    <filter> 
     <filter-name>rest</filter-name> 
     <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>thepackage</param-value> 
     </init-param> 
     <init-param> 
      <!-- enables processing by JSPs if not JAX-RS handler is registered --> 
      <param-name>com.sun.jersey.config.feature.FilterForwardOn404</param-name> 
      <param-value>true</param-value> 
     </init-param> 
     <init-param> 
      <param-name>com.sun.jersey.config.feature.CanonicalizeURIPath</param-name> 
      <param-value>true</param-value> 
     </init-param> 
     <init-param> 
      <param-name>com.sun.jersey.config.feature.NormalizeURI</param-name> 
      <param-value>true</param-value> 
     </init-param> 
     <init-param> 
      <param-name>com.sun.jersey.config.feature.Redirect</param-name> 
      <param-value>true</param-value> 
     </init-param> 
    </filter> 

    <filter-mapping> 
     <filter-name>rest</filter-name> 
     <url-pattern>/firstresource/</url-pattern> 
     <url-pattern>/secondresource/</url-pattern> 

    </filter-mapping> 

    <listener> 
     <listener-class> 
      com.sun.xml.ws.transport.http.servlet.WSServletContextListener 
     </listener-class> 
    </listener> 

    <servlet> 
     <servlet-name>soap</servlet-name> 
     <servlet-class> 
      com.sun.xml.ws.transport.http.servlet.WSServlet 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>soap</servlet-name> 
     <url-pattern>/SOAP</url-pattern> 
    </servlet-mapping> 

    <session-config> 
     <session-timeout>120</session-timeout> 
    </session-config> 

</web-app> 
संबंधित मुद्दे