相关疑难解决方法(0)

JAX-WS实现包含在Java中?

我有一个JAX-WS Web服务应用程序,它作为Tomcat 7的WAR文件进行部署.它使用最新版本的Metro库,我将其包含在WAR文件中,并且工作正常.

我正在尝试简化部署包.据我所知,太阳JDK包括地铁的复印件(请参阅这个问题这个为例),但出于某种原因,这显然是强制性的,同时一个从GlassFish网站下载,以取代地铁的这个副本.我试图了解是否有可能只使用Tomcat和JDK附带的城域网实现,或者如果不是为什么不这样做.

WAR内容如下(删除了类文件):

META-INF/MANIFEST.MF
WEB-INF/classes/
WEB-INF/classes/com/[et cetera]
WEB-INF/ibm-web-ext.xml
WEB-INF/lib/
WEB-INF/lib/stax-api.jar
WEB-INF/lib/webservices-api.jar
WEB-INF/lib/webservices-extra-api.jar
WEB-INF/lib/webservices-extra.jar
WEB-INF/lib/webservices-rt.jar
WEB-INF/lib/webservices-tools.jar
WEB-INF/sun-jaxws.xml
WEB-INF/web.xml
wsdl/
wsdl/MyService.wsdl
Run Code Online (Sandbox Code Playgroud)

web.xml 包含,部分:

<servlet>
    <servlet-name>MyService</servlet-name>
    <servlet-class>
        com.sun.xml.ws.transport.http.servlet.WSServlet
    </servlet-class>              
</servlet>
Run Code Online (Sandbox Code Playgroud)

当我从WAR中删除webservices-*jars(Metro jar)时,Web服务失败并显示错误"Wrapper找不到servlet类com.sun.xml.ws.transport.http.servlet.WSServlet或类这取决于".这并不奇怪,因为我无法在Java 7 SE附带的罐子里找到该类.

那么,如果你必须下载另一份Metro来制作像这样的工作,那么说Java 7附带Metro是什么意思呢?是否可以仅使用Java附带的jar在Tomcat中运行JAX-WS Web服务?

java tomcat web-services java-metro-framework jax-ws

16
推荐指数
2
解决办法
3万
查看次数

Java 7是包含JAX-WS实现还是仅包含API?

我被告知Java 7应该包含JAX-WS,这样我就不需要像Apache CXF那样的库.但是,官方文件说:

此版本包含用于XML处理的Java API(JAXP)1.4.5,支持用于XML绑定的Java体系结构(JAXB)2.2.3,并支持用于XML Web服务的Java API(JAX-WS)2.2.4.

此外,JAX-WS上Eclipse页面说明了使用Apache CXF,Sun Metro或Apache Axis等实现.我可以在JAX-WS上找到的每个示例/教程都使用像CXF或Metro这样的库集.

我在Eclipse中有一个项目,它在一个带有javax.jws.WebService注释的类上调用"Endpoint.publish(...)".下面引用的WSDL文件驻留在Eclipse之外.这个项目运行(作为"Java应用程序")与Apache CXF库包括.一旦我删除它们(以及Eclipse对Apache CXF的引用),它就会崩溃并出现以下异常:

com.sun.xml.internal.ws.server.ServerRtException: [failed to localize] cannot.load.wsdl(http://localhost:8081/wsdl/csw.wsdl)
    at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.getPrimaryWsdl(EndpointImpl.java:313)
Run Code Online (Sandbox Code Playgroud)

所以我要么做错了,要么Apache正在提供JDK本身只有API的东西的实现.请指出哪种情况,以及相关内容的通常链接.

java cxf jax-ws

13
推荐指数
1
解决办法
1万
查看次数

JDK6:何时使用捆绑的JAX-WS实现而不是Project Metro

与JDK6捆绑在一起的JAX-WS实现可用于提供Web服务服务器,而无需任何其他库.JVM将从指定端口上的WS服务器开始.

http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/

http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2_pt2/

我的问题是,这与Metro项目有何不同?如果最终目标是在tomcat中托管Web服务,那么我是否仍然可以使用捆绑功能然后重定向到这个捆绑的ws服务器,还是更好地部署metro servlet?

tomcat java-metro-framework jax-ws jdk6

5
推荐指数
2
解决办法
6676
查看次数

标签 统计

jax-ws ×3

java ×2

java-metro-framework ×2

tomcat ×2

cxf ×1

jdk6 ×1

web-services ×1