概述
一、服务端代码
1.需要引入axis的相关包
2、在web.xml中配置axis的servlet
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<!-- 指定符合条件的请求交给AxisServlet处理 -->
<url-pattern>/webservice/*</url-pattern>
</servlet-mapping>
3、写一个对外发布的接口
package com.demo.webservice;
public interface HelloService {
public String sayHello(String info);
}
4、写接口的实现类
package com.demo.webservice;
public class HelloServiceImpl implements HelloService {
public String sayHello(String str) {
return "sayHello:"+str;
}
}
5、通过server-config.wsdd文件对外发布服务
文件存放在工程的WEB-INFO目录下
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<service name="HelloServiceImpl" provider="java:RPC">
<parameter name="className" value="com.demo.webservice.HelloServiceImpl"/>
<parameter name="allowedMethods" value="*"/>
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
</requestFlow>
</transport>
</deployment>
6、验证
启动服务,在浏览器中键入:http://localhost:8080/webservice/HelloServiceImpl?wsdl
可以打开如下页面,表示发布成功:
二、客户端代码
1、仍然基于axis,建立HelloClient.java类:
package com.demo.webservice.client.hello;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.rpc.ServiceException;
import java.rmi.RemoteException;
public class HelloClient {
public static void main(String[] args) {
Service service = new Service();
try {
Call call = (Call)service.createCall();
//设置地址
call.setTargetEndpointAddress("http://localhost:8080/webservice/HelloServiceImpl?wsdl");
//设置要执行的方法(以下两种方式都可以)
call.setOperationName("sayHello");
//call.setOperationName(new QName("http://webservice.demo.com","sayHello"));
//设置要传入参数,如果没有要传入的参数,则不要写这个(参数名、参数类型、ParameterMode)
call.addParameter("str", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
//设置返回的类型
call.setReturnType(org.apache.axis.Constants.XSD_STRING)
;
String tfilePath = "D:\Acygj\2.xml";
File tFile = new File(tfilePath);
String tInputXmlString = null;
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(tFile)));
StringBuffer buffer = new StringBuffer();
while ((tInputXmlString = in.readLine()) != null) {
System.out.println("&&&&&&&&&&&---"+tInputXmlString);
buffer.append(tInputXmlString.trim());
}
tInputXmlString = buffer.toString();
System.out.println("---输入数据:");
System.out.println(tInputXmlString);
//调用WebService服务
String str = tInputXmlString;
String result = (String) call.invoke(new Object[]{str});
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
2、运行上述代码,控制台中打印内容,表示调成功了
最后
以上就是无语小白菜为你收集整理的基于AXIS的WebService编程的全部内容,希望文章能够帮你解决基于AXIS的WebService编程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复