我正在使用wsimport为Web服务生成客户端,但是,当我尝试使用Addressing功能启动绑定时,出现以下错误:
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中贬低,但是施展给父母应该有效。
根据我的理解,对象应该是autocast,如果不是,clojure.core/cast
应该可以工作,但是,两者都会抛出异常。
我的代码看起来像这样:
(-> (com.test.TestAPISOAP.)
(.getTestWSHttpBinding
(javax.xml.ws.soap.AddressingFeature. true true)))
答案 0 :(得分: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)])))