首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日志:com/sun/istack/NoSuchMethodError/Logger.getLogger

日志:com/sun/istack/NoSuchMethodError/Logger.getLogger
EN

Stack Overflow用户
提问于 2010-05-21 05:42:07
回答 4查看 5.7K关注 0票数 0

我开发了一个webservice并将其部署到websphere 7.0上,并使用JAX-WS开发了一个动态分派客户机,该客户机也运行在同一个应用服务器上。我在以下行得到错误:

代码语言:javascript
复制
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) 

我包含了以下依赖项。

代码语言:javascript
复制
    <dependency>
        <groupId>javax.xml.ws</groupId>
        <artifactId>jaxws-api</artifactId>
        <version>2.1</version>
    </dependency>

我还尝试添加策略依赖项(版本2.2和2.2.1)

代码语言:javascript
复制
<dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>policy</artifactId>
        <version>2.2.1</version>
</dependency>

关于我还需要添加哪些依赖项,有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2011-02-01 23:07:45

jaxb-impl jar (2.2)包含与istack-commons-runtime jar相同的日志记录类。

添加以下排除项以更正版本不匹配:

代码语言:javascript
复制
<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>
票数 1
EN

Stack Overflow用户

发布于 2010-05-21 15:08:15

我认为JAX-WS2.1已经内置于Java 6中,因此您不需要将其与您的应用程序捆绑在一起(假设您正在使用Java 6 )。如果你尝试这样做,你很可能会遇到像这样的类加载错误。

尝试从应用程序中删除所有的jax-ws jax,包括jaxws-api

票数 0
EN

Stack Overflow用户

发布于 2010-05-25 14:14:05

问题在于,这个类记录器(com.sun.istack.logging.Logger)可能在类路径中多次出现。

编译代码时,它可以访问这个Logger类,这个类与运行时发现的不同。

有两种可能性:

  1. 在运行时只有一个记录器副本,并且与compilation.
  2. There期间使用的不匹配。
    1. 此记录器有多个副本,类加载器首先找到不正确的副本,因此报告此错误。

检查包含此文件的JAR。

它通常位于jaxb-osgi.jar中。

HTH芒格鲁

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2878077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档