首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JBoss AS7中的JAX-WS,获取强制转换异常

JBoss AS7中的JAX-WS,获取强制转换异常
EN

Stack Overflow用户
提问于 2012-08-28 23:01:10
回答 1查看 1.7K关注 0票数 0

我使用JAX-WS创建了一个简单的WS服务,但我预计会出现一个新问题。

我的webservice代码是这样的:

代码语言:javascript
复制
@WebService
public class UpdateList implements IUpdateList {

    public UpdateList() {
    }

    @Override
    public Collection<Long> getFrom(Long version) {
        System.out.println("test");
        return new ArrayList<Long>();
    }

}

我用wsimport生成了客户端代码,并为它创建了一个简单的main:

代码语言:javascript
复制
public class App {

    public static void main(String[] args) {
        System.out.println(new UpdateListService().getUpdateListPort().getFrom(183L));
    }
}

但是,当我运行它时,我得到了一个无法解释的类类型转换异常:

代码语言:javascript
复制
Exception in thread "main" java.lang.ExceptionInInitializerError
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(Unknown Source)
    at $Proxy29.getFrom(Unknown Source)
    at com.test.App.main(App.java:8)
Caused by: java.lang.ClassCastException: com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to com.sun.xml.internal.bind.api.JAXBRIContext
    at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.<clinit>(Unknown Source)
    ... 5 more

然后我意识到这可能是一些依赖冲突,所以我运行了mvn dependency:tree,它很干净,我唯一的副手是hibernate,guava,guice和jaxws-rt。(您可以在我的see服务示例中看到,它没有使用任何引用的依赖项,但我很快就会这样做,当我修复这个问题时)。

好的,完整的列表,给客户:

代码语言:javascript
复制
+- com.google.guava:guava:jar:13.0:compile
+- com.google.inject:guice:jar:3.0:compile
|  +- javax.inject:javax.inject:jar:1:compile
|  \- aopalliance:aopalliance:jar:1.0:compile
+- log4j:log4j:jar:1.2.17:compile
+- junit:junit:jar:4.10:test
|  \- org.hamcrest:hamcrest-core:jar:1.1:test
+- com.sun.xml.bind:jaxb-impl:jar:2.2.6:compile
+- org.hsqldb:hsqldb:jar:2.2.8:test
+- com.google.inject.extensions:guice-persist:jar:3.0:compile
+- org.hibernate:hibernate-entitymanager:jar:4.1.6.Final:compile
|  +- org.jboss.logging:jboss-logging:jar:3.1.0.GA:compile
|  +- org.hibernate:hibernate-core:jar:4.1.6.Final:compile
|  |  \- antlr:antlr:jar:2.7.7:compile
|  +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:jar:1.0.0.Final:compile
|  +- dom4j:dom4j:jar:1.6.1:compile
|  +- org.javassist:javassist:jar:3.15.0-GA:compile
|  \- org.hibernate.common:hibernate-commons-annotations:jar:4.0.1.Final:compile
+- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Final:compile
+- mysql:mysql-connector-java:jar:5.1.21:compile
\- commons-lang:commons-lang:jar:2.6:compile

对于服务:

代码语言:javascript
复制
 +- com.sun.xml.ws:jaxws-rt:jar:2.2.6-2:compile
 |  +- javax.xml.ws:jaxws-api:jar:2.2.8:compile
 |  |  +- javax.xml.bind:jaxb-api:jar:2.2.4:compile
 |  |  +- javax.xml.soap:saaj-api:jar:1.3.4:compile
 |  |  +- org.glassfish:javax.annotation:jar:3.1.1:runtime
 |  |  \- javax.jws:jsr181-api:jar:1.0-MR1:runtime
 |  +- com.sun.xml.messaging.saaj:saaj-impl:jar:1.3.18:compile
 |  +- com.sun.xml.stream.buffer:streambuffer:jar:1.4:compile
 |  |  +- javax.xml.stream:stax-api:jar:1.0-2:compile
 |  |  \- javax.activation:activation:jar:1.1:compile
 |  +- org.codehaus.woodstox:woodstox-core-asl:jar:4.1.2:compile
 |  +- org.codehaus.woodstox:stax2-api:jar:3.1.1:compile
 |  +- org.jvnet.mimepull:mimepull:jar:1.8:compile
 |  +- com.sun.xml.ws:policy:jar:2.3.1:compile
 |  |  +- com.sun.xml.txw2:txw2:jar:20110809:compile
 |  |  |  \- relaxngDatatype:relaxngDatatype:jar:20020414:compile
 |  |  \- com.sun.istack:istack-commons-runtime:jar:2.4:compile
 |  +- org.jvnet.staxex:stax-ex:jar:1.7:compile
 |  +- org.glassfish.gmbal:gmbal-api-only:jar:3.1.0-b001:compile
 |  |  \- org.glassfish.external:management-api:jar:3.0.0-b012:compile
 |  \- org.glassfish.ha:ha-api:jar:3.1.8:compile
 +- com.google.guava:guava:jar:13.0:compile
 +- com.google.inject:guice:jar:3.0:compile
 |  +- javax.inject:javax.inject:jar:1:compile
 |  \- aopalliance:aopalliance:jar:1.0:compile
 +- log4j:log4j:jar:1.2.17:compile
 +- junit:junit:jar:4.10:test
 |  \- org.hamcrest:hamcrest-core:jar:1.1:test
 +- com.sun.xml.bind:jaxb-impl:jar:2.2.6:compile
 +- org.hsqldb:hsqldb:jar:2.2.8:test
 +- com.google.inject.extensions:guice-persist:jar:3.0:compile
 +- org.hibernate:hibernate-entitymanager:jar:4.1.6.Final:compile
 |  +- org.jboss.logging:jboss-logging:jar:3.1.0.GA:compile
 |  +- org.hibernate:hibernate-core:jar:4.1.6.Final:compile
 |  |  \- antlr:antlr:jar:2.7.7:compile
 |  +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:jar:1.0.0.Final:compile
 |  +- dom4j:dom4j:jar:1.6.1:compile
 |  +- org.javassist:javassist:jar:3.15.0-GA:compile
 |  \- org.hibernate.common:hibernate-commons-annotations:jar:4.0.1.Final:compile
 +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Final:compile
 +- mysql:mysql-connector-java:jar:5.1.21:compile
 \- commons-lang:commons-lang:jar:2.6:compile

我结束了这个想法,认为我的jboss中缺少一些配置或jar文件。我做了一些研究,但没有发现任何相关的东西。

已经有人通过这个了?有什么建议吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-29 00:08:42

看起来您正在捆绑JAXP实现com.sun.xml.bind:jaxb-impl:jar:2.2.6:compile。尝试将作用域更改为<scope>provided</scope>com.sun.xml.ws:jaxws-rt:jar:2.2.6-2:compile也是如此。

事实上,其中大多数都应该提供。

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

https://stackoverflow.com/questions/12162134

复制
相关文章

相似问题

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