Clojure不承认父类

时间:2013-09-06 07:20:02

标签: casting clojure jax-ws

我正在使用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)))

1 个答案:

答案 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)])))