Servlets JBOSS中JAX-WS上下文侦听器初始化失败

Servlets JBOSS中JAX-WS上下文侦听器初始化失败,servlets,jax-ws,servletcontextlistener,initializing,Servlets,Jax Ws,Servletcontextlistener,Initializing,我在JBoss4.0.3中尝试部署JAX-WSWeb服务时遇到以下错误。我正在使用JAX-WSRI运行库。我没有使用JBOSS-WS,而是JBOSS特定的JAX-WS 18:31:21,125 INFO [STDOUT] Feb 20, 2015 6:31:21 PM com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized INFO: WSSERVLET12: JAX-WS contex

我在JBoss4.0.3中尝试部署JAX-WSWeb服务时遇到以下错误。我正在使用JAX-WSRI运行库。我没有使用JBOSS-WS,而是JBOSS特定的JAX-WS

18:31:21,125 INFO  [STDOUT] Feb 20, 2015 6:31:21 PM com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized
INFO: WSSERVLET12: JAX-WS context listener initializing
18:31:21,203 INFO  [STDOUT] Feb 20, 2015 6:31:21 PM com.sun.xml.ws.transport.http.servlet.WSServletContextListener parseAdaptersAndCreateDelegate
SEVERE: WSSERVLET11: failed to parse runtime descriptor:   
java.lang.AbstractMethodError: javax.xml.transform.TransformerFactory.setFeature(Ljava/lang/String;Z)V
java.lang.AbstractMethodError: javax.xml.transform.TransformerFactory.setFeature(Ljava/lang/String;Z)V
at com.sun.xml.ws.util.xml.XmlUtil.newTransformerFactory(XmlUtil.java:392)
at com.sun.xml.ws.util.xml.XmlUtil.newTransformerFactory(XmlUtil.java:400)
at com.sun.xml.ws.util.xml.XmlUtil.<clinit>(XmlUtil.java:233)
at com.sun.xml.ws.api.streaming.XMLStreamReaderFactory.getXMLInputFactory(XMLStreamReaderFactory.java:127)
at com.sun.xml.ws.api.streaming.XMLStreamReaderFactory.<clinit>(XMLStreamReaderFactory.java:89)
at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:176)
at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(WSServletContextListener.java:131)
at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:152)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3669)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4104)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)...
18:31:21125信息[STDOUT]2015年2月20日下午6:31:21 com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized
信息:WSSERVLET12:JAX-WS上下文侦听器正在初始化
18:31:21203信息[STDOUT]2015年2月20日下午6:31:21 com.sun.xml.ws.transport.http.servlet.WSServletContextListener解析器适配器和CreateDelegate
严重:WSSERVLET11:无法分析运行时描述符:
java.lang.AbstractMethodError:javax.xml.transform.TransformerFactory.setFeature(Ljava/lang/String;Z)V
java.lang.AbstractMethodError:javax.xml.transform.TransformerFactory.setFeature(Ljava/lang/String;Z)V
位于com.sun.xml.ws.util.xml.XmlUtil.newTransformerFactory(XmlUtil.java:392)
位于com.sun.xml.ws.util.xml.XmlUtil.newTransformerFactory(XmlUtil.java:400)
位于com.sun.xml.ws.util.xml.XmlUtil.(XmlUtil.java:233)
位于com.sun.xml.ws.api.streaming.XMLStreamReaderFactory.getXMLInputFactory(XMLStreamReaderFactory.java:127)
位于com.sun.xml.ws.api.streaming.XMLStreamReaderFactory。(XMLStreamReaderFactory.java:89)
位于com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:176)
在com.sun.xml.ws.transport.http.servlet.WSServletContextListener.ParseAdapters和CreateDelegate(WSServletContextListener.java:131)上
位于com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:152)
位于org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3669)
位于org.apache.catalina.core.StandardContext.start(StandardContext.java:4104)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
在java.lang.reflect.Method.invoke(未知源)。。。

web.xml
中,我为类设置了侦听器:
com.sun.xml.ws.transport.http.servlet.WSServletContextListener
javax.xml.transform.TransformerFactory
是抽象的,您需要在类路径的某个地方实现该类。异常
java.lang.AbstractMethodError:javax.xml.transform.TransformerFactory.setFeature(Ljava/lang/String;Z)
通常表示依赖项中存在版本冲突,因为您使用的实现是针对不同版本的接口构建的

要解决此问题,必须使用匹配的实现。TransformerFactory实现包含XML解析器,如Xalan或Xerces。通过设置适当的系统属性,可以告诉Java使用特定的解析器实现:

    Properties p = System.getProperties();
    p.setProperty("javax.xml.transform.TransformerFactory", "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl");
    p.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
    p.setProperty("javax.xml.parsers.SAXParserFactory", "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl");
    System.setProperties(p);

在应用程序初始化期间执行此操作将把默认解析器实现设置为JRE的内部Xalan解析器。要使用其他解析器,请包含它们的依赖项,并将实现类的名称放在setProperties方法中。

Hm,我遇到了同样的问题。。。。使用JAX-WS-RT。。。但是在Glassfish 4.1/JDK 1.7下。由于另一个ClassNotFoundException,在将JAX-WS添加到类路径后获得此消息:-(java.lang.Exception:java.lang.IllegalStateException:ContainerBase.addChild:start:org.apache.catalina.LifecycleException:org.apache.catalina.LifecycleException:javax.servlet.ServletException:com.sun.xml.ws.transport.http.servlet.wsservletleexception:WSSERVLET11:laufzeitdesktor konnte nicht-geparst-werden:java.lang.AbstractMethodError:javax.xml.transform.TransformerFactory.setFeature(Ljava/lang/String;Z)