我开发了一个webservice并将其部署到websphere 7.0上,并使用JAX-WS开发了一个动态分派客户机,该客户机也运行在同一个应用服务器上。我在以下行得到错误:
Dispatch<SOAPMessage> dispatch = service.createDispatch(portName, SOAPMessage.class, Service.Mode.MESSAGE);
Error:
Caused by: java.lang.NoSuchMethodError: com/sun/istack/logging/Logger.getLogger(Ljava/lang/Class;)Lcom/sun/istack/logging/Logger;
at com.sun.xml.ws.api.config.management.policy.ManagementAssertion.<clinit>(ManagementAssertion.java:87)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:167)
at com.sun.xml.ws.server.MonitorBase.createManagedObjectManager(MonitorBase.java:177)
at com.sun.xml.ws.client.Stub.<init>(Stub.java:196)
at com.sun.xml.ws.client.Stub.<init>(Stub.java:174)
at com.sun.xml.ws.client.dispatch.DispatchImpl.<init>(DispatchImpl.java:129)
at com.sun.xml.ws.client.dispatch.SOAPMessageDispatch.<init>(SOAPMessageDispatch.java:77)
at com.sun.xml.ws.api.pipe.Stubs.createSAAJDispatch(Stubs.java:143)
at com.sun.xml.ws.api.pipe.Stubs.createDispatch(Stubs.java:264)
at com.sun.xml.ws.client.WSServiceDelegate.createDispatch(WSServiceDelegate.java:390)
at com.sun.xml.ws.client.WSServiceDelegate.createDispatch(WSServiceDelegate.java:401)
at com.sun.xml.ws.client.WSServiceDelegate.createDispatch(WSServiceDelegate.java:383)
at javax.xml.ws.Service.createDispatch(Service.java:336) 我包含了以下依赖项。
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.1</version>
</dependency>我还尝试添加策略依赖项(版本2.2和2.2.1)
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>policy</artifactId>
<version>2.2.1</version>
</dependency>关于我还需要添加哪些依赖项,有什么想法吗?
发布于 2011-02-01 23:07:45
jaxb-impl jar (2.2)包含与istack-commons-runtime jar相同的日志记录类。
添加以下排除项以更正版本不匹配:
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.2</version>
<exclusions>
<exclusion>
<artifactId>istack-commons-runtime</artifactId>
<groupId>com.sun.istack</groupId>
</exclusion>
</exclusions>
</dependency>发布于 2010-05-21 15:08:15
我认为JAX-WS2.1已经内置于Java 6中,因此您不需要将其与您的应用程序捆绑在一起(假设您正在使用Java 6 )。如果你尝试这样做,你很可能会遇到像这样的类加载错误。
尝试从应用程序中删除所有的jax-ws jax,包括jaxws-api。
发布于 2010-05-25 14:14:05
问题在于,这个类记录器(com.sun.istack.logging.Logger)可能在类路径中多次出现。
编译代码时,它可以访问这个Logger类,这个类与运行时发现的不同。
有两种可能性:
检查包含此文件的JAR。
它通常位于jaxb-osgi.jar中。
HTH芒格鲁
https://stackoverflow.com/questions/2878077
复制相似问题