JAX-RS ve JAX-WS'yi (veya eşdeğer işlevselliği) iki uç noktayı (bir SOAP ve bir tane kullanarak) benzer şekilde birleştirilmiş bir hizmette birleştiren bir çerçeve, kitaplık veya teknik var mı? REST) WCF'de aynı hizmet için?Birleşik JAX-RS ve JAX-WS
cevap
Apache CXF işi yapabilir. Daha fazla bilgi için bkz. http://cxf.apache.org/docs/frontends.html
Mikhail'in yanıtına ek olarak, CXF yapılandırmasının örneği. Daha fazla bilgi 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" />
Güncelleme yer almaktadır: Peter Szanto https://github.com/ExampleDriven/cxf-example
Bu standart bir erkek kedi yapılandırma ile mümkün bir maven projesi oluşturdu. Sadece hizmetler için ayrı URL'leri kullanın. JAX-WS hizmetini "SOAP /" ve diğerleri ise küçük harflerin arkasına koymaya karar verdim. URL'de "dinlenme" yi kullanmak istiyorsanız, daha da kolay, ancak son kullanıcılar için iyi görünmüyor. Bir de sun-jaxws.xml eklemeyi unutmayın. Init-params'ı normalleştirilmiş URL'ler için yararlı oldukları için bıraktım. İsterseniz hepsini bırakabilirsiniz.
<?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>