这是这个问题的延续:JBoss --应用程序是否必须在JBOSS运行的相同的jdk下编译?
不过,这是完全不同的,它需要一个新的问题。
我试图使用jdk6运行JBoss5.1,并下载了JBoss5.1的JDK6版本。这很好,我的EAR应用程序也部署得很好。但是,当我想使用如下代码运行web服务客户端时:
public static void main(String[] args) throws Exception {
System.out.println("creating the web service client...");
TestClient client = new TestClient("http://localhost:8080/tc_test_project-tc_test_project/TestBean?wsdl");
Test service = client.getTestPort();
System.out.println("calling service.retrieveAll() using the service client");
List<TestEntity> list = service.retrieveAll();
System.out.println("the number of elements in list retrieved using the client is " + list.size());
}我得到以下例外:
javax.xml.ws.WebServiceException: java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:396)
at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:302)
at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:170)
at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:150)现在,,这是真正有趣的部分,。如果我将上面代码运行的JDK从JDK6更改为JDK5,那么上面的例外就消失了!真的很奇怪。
为了在JDK6下运行上面的代码,我发现的唯一方法是将JBOSS_HOME/lib/ and文件夹复制到JDK6 6_HOME/lib。这似乎不应该是必要的,但确实如此。
除了使用我刚才描述的解决方法之外,还有其他方法可以使这个工作吗?
发布于 2010-03-13 13:27:09
看起来,您似乎遇到了JAX作为JDK1.6的一个官方特性。不要将内容复制到“lib”,而是将其复制到“核可”目录(java.endorsed.dirs中列出的目录)。这可能会有帮助。
如果你有一个最新的1.6,你可以像Apache一样绕过这个问题。有关如何在1.6环境中使用CXF的信息,请参阅文档。
发布于 2010-03-13 13:13:48
在各自的错误报告和其他地方(例如这里和这里)中有各种建议和解释。我不知道它们有多好。
发布于 2011-03-23 13:24:53
有关此问题的信息,您可以在JBoss正式安装和入门指南:Alternatives.html中找到
https://stackoverflow.com/questions/2438302
复制相似问题