简体   繁体   English

Java 链接错误 JAX-WS

[英]Java Linkage Error JAX-WS

I am getting this Error while Trying to use WebServices.我在尝试使用 Web 服务时收到此错误。 I googled for it and found that it occurs because different versions of same class files maybe present or some conflict occurs.我用谷歌搜索它,发现它的发生是因为可能存在相同类文件的不同版本或者发生了一些冲突。 I tried giving an endorsed Directory path while running Web Application, still no luck.我尝试在运行 Web 应用程序时提供认可的目录路径,但仍然没有成功。 The environment I am using is JDK 1.6.0.20 and JBoss 5.0.:我使用的环境是JDK 1.6.0.20和JBoss 5.0.:

java.lang.LinkageError: loader constraint violation: when resolving method "javax.xml.ws.Service.<init>(Ljava/net/URL;Ljavax/xml/namespace/QName;)V" the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the current class, com/abc/amservice/AMService, and the class loader (instance of <bootloader>) for resolved class, javax/xml/ws/Service, have different Class objects for the type javax/xml/namespace/QName used in the signature
    com.abc.amservice.AMService.<init>(AMService.java:48)
    com.abcx.accessmanager.plugin.provider.webservice.ServiceConnection.createAndInitializeNewService(ServiceConnection.java:103)
    com.abcx.accessmanager.plugin.provider.webservice.ServiceConnection.getAMService(ServiceConnection.java:91)
    com.abcx.accessmanager.plugin.provider.webservice.ServiceConnection.createNewServicePort(ServiceConnection.java:136)
    com.abcx.accessmanager.plugin.provider.webservice.ServiceConnection.getWebServicePort(ServiceConnection.java:69)
    com.abcx.accessmanager.plugin.provider.webservice.AuthenticationProviderWebService.getWebServicePort(AuthenticationProviderWebService.java:536)
    com.abcx.accessmanager.plugin.provider.webservice.AuthenticationProviderWebService.authenticateUser(AuthenticationProviderWebService.java:80)
    com.abcx.accessmanager.plugin.provider.validator.ValidatingAuthenticationProvider.authenticateUser(ValidatingAuthenticationProvider.java:59)
    com.abcx.accessmanager.plugin.api.AccessManagementServiceConnector.authenticateUser(AccessManagementServiceConnector.java:61)
    com.qwe.spring.security.MyAuthenticationProvider.additionalAuthenticationChecks(MyAuthenticationProvider.java:33)
    org.springframework.security.providers.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:137)
    org.springframework.security.providers.ProviderManager.doAuthentication(ProviderManager.java:188)
    org.springframework.security.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:46)
    org.springframework.security.ui.webapp.AuthenticationProcessingFilter.attemptAuthentication(AuthenticationProcessingFilter.java:82)
    org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:259)
    org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
    org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
    org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
    org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
    org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
    org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
    org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
    org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
    org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

Would appreciate any help.将不胜感激任何帮助。 Thanks谢谢

A solution can be found in this question .可以在这个问题中找到解决方案。

In short: make sure that you do not deploy another javax.xml.namespace.* package, rely on the one that is shipped with Java 6简而言之:确保您没有部署另一个javax.xml.namespace.*包,依赖于 Java 6 附带的包

There are two options that can help you:有两个选项可以帮助您:

1 - Change Jboss version at runtime. 1 - 在运行时更改 Jboss 版本。 Download the Jboss again, your version can be cracked, it's very common.重新下载Jboss,你的版本可以破解,很常见。 So set your Jboss runtime in Eclipse according your installation like as: "C:\jboss-eap-5.1\jboss-as".因此,根据您的安装在 Eclipse 中设置您的 Jboss 运行时,例如:“C:\jboss-eap-5.1\jboss-as”。

OR要么

2 - Just remove the lib wsdl4j.jar at build path, if viable in your case. 2 - 如果在您的情况下可行,只需删除构建路径中的 lib wsdl4j.jar。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM