服务器端开发
package samples.userguide.example2;
public class Calculator {
  public int add(int i1, int i2)
  {
    return i1 + i2;
  }
  public int subtract(int i1, int i2)
  {
    return i1 - i2;
  }
}
客户端开发
public class CalcClient
{
   public static void main(String [] args) throws Exception {
       try{
           String endpoint = "https://localhost:8440/services/Calculator";
           Integer i1 = new Integer(1);
           Integer i2 = new Integer(2);           Service service = new Service();
           Call call = (Call) service.createCall();           call.setTargetEndpointAddress(new java.net.URL(endpoint));
           call.setOperationName("add");
           call.addParameter("i1", XMLType.XSD_INT, ParameterMode.IN);
           call.addParameter("i2", XMLType.XSD_INT, ParameterMode.IN);
           call.setReturnType(XMLType.XSD_INT);           Integer ret = (Integer) call.invoke(new Object[] {i1, i2});           System.out.println("Got result : " + ret);
       }
       catch(Exception e){
           e.printStackTrace();
       }
   }
}
报错如下
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.net.ConnectException: Connection refused: connect
 faultActor: 
 faultNode: 
 faultDetail: 
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:92)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at samples.userguide.example2.CalcClient.main(CalcClient.java:27) {http://xml.apache.org/axis/}hostname:sdfsdf这是什么原因啊?等待···

解决方案 »

  1.   

    楼主是通过代理服务器上网的吧, 是的话可以在程序中把代理服务器加上。或者看看host文件中有没有: 127.0.0.1      localhost
      

  2.   

    还有一种可能就是你的虚拟机的问题。你可以再IE下访问下你那个wsdl文件,然后看看soap address的地址是不是你虚拟机的IP地址,把那个改为本机IP就OK了。
      

  3.   

    用ie访问wsdl的时候出现的是404错误!
      

  4.   

    我以http://localhost:8080/services/Calculator 来访问这个service了,报的是404错。
      

  5.   

    我能加你QQ具体问下你webservice的问题吗?
      

  6.   

    [email protected]
    我很少上qq,用msn吧