本来用asix调用...
但是比较纠结的是 在调用的时候有一个参数需要接口的class,
可是接口的打点class 在clojure是找不到的属性 无法使用
getClass class type . XXX class
这些都用了= =老是不对.
后来在一个地方看到个老外调用的...
也只是用的生成的方代码调用的
首先拿到wsdl.
然后用Java中带的一个wsimport 这个东西...
这里有使用说明,看得懂的就去看看吧.
$JAVA_HOME/bin/wsimport -keep -p generated.test http://localhost:8080/services/HelloWorld?wsdl
java home 我就不用说了...找到这个东西...
-keep是生产源代码文件 也就是.java
-p 是输出到指定地方...不太确定= =哈哈
generated.test 这个就相当是包了~
后面的就是那个啥....
然后会在当前的地方生成一个文件夹 以generated\ test\ 一堆文件
然后到了用clj的时候
(ns org.ns.rpc.core)(import '(generated.test HelloWorldService ) )(defn rpc-my-test[x] (let [service (HelloWorldService.) execute (. service getHelloWorld)] (. execute sayHelloWorldFrom x)))(println (rpc-my-test "nimei"))
在那个test的包下 有3个文件 分别是一个以serviceName命名的interface 和一个带有service后缀的class
和你一个objectFactory 文件,其实interface和factory都不用只要用service那个就行了.
如果不同包下记得导入 不导入的话可以直接加包名.
其实更方便的是使用eclipse等工具生成client文件....反正调用就是这样了~~~
= =如果谁知道那个interface.class 在clojure中怎么用 请告诉我...