服务器端是.net编写的webservice,用C#的client调用没问题,用 JAVA调用怎么就报未实例化了啊,网上查了 大半天也没找出来,跟踪发现是参数没传进去,但是看网上的代码 都是那样传的参数啊 ,都还说没问题,贴出来都是没问题的代码,就是
String res=call.invoke(new object("....");类似这行的问题,我是搞.net的,谢谢各位java的兄弟们帮忙看夏,小弟请教了

解决方案 »

  1.   

    前几天遇到同样的问题,如果是axis做的:
     call.setUseSOAPAction(true); //.net写的,要加这个
     call.setSOAPActionURI("http://tempuri.org/MethodName");//.net写的,要加这个
      

  2.   

    谢谢楼上的 兄弟,我这两行加了啊,贴上我的 代码,帮忙看下吧,谢谢
    import javax.xml.namespace.QName;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;public class InvokeTest { public static void main(String[] args) {
    invoke();
    } public static void invoke() {
    try {
    String s = "abc"; // WebService URL
    String endPoint = "http://localhost/WsdlServer/test.asmx";
    // Service's nameSpace
    String nameSpace = "http://www.essp.com"; Service service = new Service(); Call call = (Call) service.createCall();
    call.setTargetEndpointAddress(new java.net.URL(endPoint)); // set function name "PrintStr"
    call.setUseSOAPAction(true);
    call.setSOAPActionURI(nameSpace + "/PrintStr");

    call.setOperation("PrintStr");   
    call.setOperationName(new QName(nameSpace, "PrintStr")); // set parmrameter of the function "str"
    call.addParameter("str",  org.apache.axis.encoding.XMLType.XSD_STRING,
                        javax.xml.rpc.ParameterMode.IN); // return value of the function
    call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
    // execute the function 这行的问题。参数s上面定义也赋值了,进不去
    String res = (String) call.invoke(new Object[] {s}); System.out.println("Invoke PrintStr Result = " + res.toString()); } catch (Exception e) {
    System.err.println(e);
    }
    }}
      

  3.   

    还是没有人回答吗?看来又是个无满意答案的帖子,哎
    CSDN上的高手少了哦