日期:2014-05-20  浏览次数:20585 次

本人是写PHP的,有段JAVA看不懂,能帮忙翻译一下吗?
鄙人水平实在很菜....
代码我贴在下面,能通俗点讲就好了,谢谢

3.6 接口调用方法(java实现)


1. 假设提供soap接口的服务端地址为   http://10.0.0.100:8088/IfSoapDemo”
2. 访问WEB地址”   http://10.0.0.100:8088/IfSoapDemo?wsdl”获得wsdl文档
3. 假定文档中说明该调用接口的类方法String   do(String   smg)
4. Java中调用该接口的简单示例代码如下:

try   {
        String   endpoint   =   "   http://10.0.0.100:8088/IfSoapDemo ";
        org.apache.axis.client.Service   service   =   new   org.apache.axis.client.Service();
        org.apache.axis.client.Call   call   =   null;
        call   =   (org.apache.axis.client.Call)   service.createCall();
        call.setOperationName(new   javax.xml.namespace.QName(endpoint, "do "));
call.setTargetEndpointAddress(new   java.net.URL(endpoint));
String   smg   =   “testParameter”;
        String   ret   =   (String)call.invoke(new   Object[]{smg});
}  
catch   (ServiceException   ex)  
{
        ex.printStackTrace();
}
5. 用JBuilder等集成开发环境可以更加方便的生成相关调用代码。


------解决方案--------------------
这是远程访问Web Services应用服务的基础程序框架,您可以去学习一下SOAP相关知识
//新建一个远程应用端口信息
String endpoint = " http://10.0.0.100:8088/IfSoapDemo ";
//通过Axis的Soap建立客户端对象
org.apache.axis.client.Service service = new org.apache.axis.client.Service();
//准备调用服务器应用服务
org.apache.axis.client.Call call = null;
//建立正式的远程连接
call = (org.apache.axis.client.Call) service.createCall();
//设置CALL的命名空间(可以去参考一下国际命名标准)
call.setOperationName(new javax.xml.namespace.QName(endpoint, "do "));
//设置服务器服务端口信息
call.setTargetEndpointAddress(new java.net.URL(endpoint));
//SMG是要传入到服务器的参数
String smg = “testParameter”;
//通过Invoke返回服务器的响应值,这里要注意:返回值是不确定的,所以在得到该返回值时要将其进行强制转换
String ret = (String)call.invoke(new Object[]{smg});