Java JBoss5.1和JDK6中的Web服务客户端

Java JBoss5.1和JDK6中的Web服务客户端,java,web-services,jboss,jdk6,Java,Web Services,Jboss,Jdk6,这是问题的继续: 虽然它有很大的不同,但它需要一个新的问题 我尝试使用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

这是问题的继续:

虽然它有很大的不同,但它需要一个新的问题

我尝试使用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());
}
现在,这是真正有趣的部分。如果我将运行上述代码的JDK从JDK6更改为JDK5,上述异常就会消失!真奇怪

我发现上面的代码在JDK6下运行的唯一方法是将JBOSS_HOME/lib/annowned文件夹复制到JDK6_HOME/lib。这似乎是不必要的,但确实是


除了使用我刚才描述的解决方法之外,还有其他方法可以实现这一点吗?

在相应的和其他地方(例如和)有各种建议和解释。我不知道它们工作得有多好。

看起来好像您遇到了JAX-WS作为JDK1.6的一个官方特性。不要将内容复制到“lib”,而是将它们复制到一个“背书”目录(java.annocated.dirs中列出的目录)。可能会有帮助


如果你有一个最新的1.6版本,你可以用同样的方法来解决这个问题。有关如何在1.6环境中使用CXF的信息,请参阅文档。

有关此问题的信息,您可以在《JBoss官方安装和入门指南》中找到:

我不太明白。我将JBOSS_HOME/lib/annocated文件夹复制到JDK6_HOME/lib,最后得到JDK6_HOME/lib/annocated。你是说别的吗?据我所知,JBoss不使用JDK/lib/approved文件夹。您需要将所有webapps所需的所有jar放入JBOSS/lib/approved文件夹。
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)