1

我正在使用 wsimport 为 Web 服务生成客户端,但是,当我尝试使用寻址功能启动绑定时,出现以下错误:

Exception in thread "main" java.lang.ClassCastException: javax.xml.ws.soap.AddressingFeature cannot be cast to [Ljavax.xml.ws.WebServiceFeature;

我知道 javax.xml.ws.soap.AddressingFeature 扩展了 javax.xml.ws.WebServiceFeature 的事实,所以我不确定发生了什么。我知道你不能在 Clojure 中沮丧,但是向父母强制转换应该是可行的。

根据我的理解,对象应该是自动转换的,如果不是,clojure.core/cast应该可以工作,但是,两者都会抛出异常。

我的代码看起来像这样:

(-> (com.test.TestAPISOAP.) 
    (.getTestWSHttpBinding 
        (javax.xml.ws.soap.AddressingFeature. true true)))
4

1 回答 1

0

它看起来像.getTestWSHttpBinding接受一个数组([Ljavax.xml.ws.WebServiceFeature 中的 [L),而不是单个元素。

尝试使用clojure.core/to-array创建一个AddressingFeature作为单个元素的数组:

(-> (com.test.TestAPISOAP.) 
    (.getTestWSHttpBinding 
        (to-array [(javax.xml.ws.soap.AddressingFeature. true true)])))
于 2013-09-06T07:48:28.500 回答