下载jar包:axis2-1.5.4-bin.zip
下载war包:axis2-1.5.4-war.zip
路径网上有
服务端目录:
客户端目录:
解压axis2-1.5.4-war.zip,获取axis2.war包,放到tomcat下,启动tomcat
1.tomcat.0\webapps\axis2\WEB-INF,复制该路径下的conf文件夹与services文件夹到,服务端的WEB-INF中
2.在services文件夹下建立对应目录。新建service.xml文件,复制下面service.xml代码
3.注释WEB-INF\conf\axis2.xml 下“<module ref="addressing"/>” 大概在237行
4.复制axis2-1.5.4-bin.zip解压后lib包下的所有jar到服务端和客户端(后面再筛选必须的jar包)
4.在web.xml中添加
web.xml代码
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class> org.apache.axis2.transport.http.AxisServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
服务端service.xml代码
<serviceGroup> <!--下面定义服务名,当在url访问时用到此服务名--> <service name="BOBOService" scope="soapsession"> <description></description> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPcmessageReceiver" /> </messageReceivers> <!--ServiceClass指定Java Class的位置,即实现服务的类。 --> <parameter name="ServiceClass" locked="xsd:false"> com.bobo.service.BOBOService </parameter> <!--operation 与Java Class中方法名对应 --> <operation name="receiveUser"> <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" /> <actionMapping>urn:receiveUser</actionMapping> </operation> </service> </serviceGroup>
服务端,客户端同样User代码
package com.bobo.entity; import java.io.Serializable; public class User implements Serializable { private static final long serialVersionUID = 677484458789332877L; private int id; private String name; private String email; private String address; public User(){} public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return this.id + "#" + this.name + "#" + this.email + "#" + this.address; } }
客户端BOBOClient代码
package com.bobo.client; import java.util.ArrayList; import java.util.List; import javax.xml.namespace.QName; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; import org.apache.axiom.om.OMNamespace; import org.apache.axis2.Constants; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.client.ServiceClient; import org.apache.axis2.databinding.utils.BeanUtil; import org.apache.axis2.transport.http.HTTPConstants; import com.bobo.entity.User; public class BOBOClient { public static void main(String[] args) throws Exception { EndpointReference targetEPR = new EndpointReference("http://localhost:8085/Axis2service/services/BOBOService"); //EndpointReference targetEPR = new EndpointReference("http://localhost:8085/SayHello/services/APIWebService2"); try { Options options = new Options(); options.setTo(targetEPR); options.setTransportInProtocol(Constants.TRANSPORT_HTTP); options.setProperty(HTTPConstants.CHUNKED,"false");//设置不受限制. ServiceClient sender = new ServiceClient(); sender.setoptions(options); System.out.println("webservice start"); OMElement sayHello = doSetoMElement(); OMFactory fac = OMAbstractFactory.getoMFactory(); OMNamespace omNs = fac.createOMNamespace("",""); OMElement method = fac.createOMElement("receiveUser",omNs); method.addChild(sayHello); OMElement result = sender.sendReceive(method); System.out.println("webservice end"); } catch (Exception e) { e.printstacktrace(); } } /** *创建调用webservice接口所需的参数OMElement对象。 * * @return */ public static OMElement doSetoMElement() { List<User> list = new ArrayList<User>(); User user1 = new User(); user1.setId(1); user1.setName("chenbo"); user1.setAddress("aaaa"); user1.setEmail("ddddddd"); User user2 = new User(); user2.setId(2); user2.setName("chenbo2"); user2.setAddress("aaaa2"); user2.setEmail("ddddddd2"); list.add(user1); list.add(user2); String typeName = "computer"; // 构建 OMFactory 工厂 OMFactory factory = OMAbstractFactory.getoMFactory(); OMNamespace omNamespace = factory.createOMNamespace("http://service.bob.com","ns"); OMElement omElement = BeanUtil.getoMElement(new QName("root"),list.toArray(),new QName("user"),false,null); omElement.addAttribute("name",typeName,omNamespace); return omElement; } }
服务端BOBOService代码
package com.bobo.service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; import org.apache.axiom.om.OMNamespace; import org.apache.axiom.om.OMNode; import org.apache.axis2.AxisFault; import org.apache.axis2.databinding.utils.BeanUtil; import org.apache.axis2.engine.DefaultObjectsupplier; import com.bobo.entity.User; public class BOBOService { public OMElement receiveUser(OMElement userEle) throws Exception { System.out.println("进入服务端方法!!!!!!!"); List<User> list = getResults(userEle); for (User user : list) { System.out.println(user.getName()); } OMFactory fac = OMAbstractFactory.getoMFactory(); OMNamespace omNs = fac.createOMNamespace("",""); OMElement soapMain = fac.createOMElement("sendClient",omNs); return soapMain; } private static List<User> getResults(OMElement element) throws AxisFault { if (element == null) { return null; } element = (OMElement) element.getChildElements().next(); // 下个元素 Iterator iterator = element.getChildElements(); List<User> list = new ArrayList<User>(); while (iterator.hasNext()) { OMNode omNode = (OMNode) iterator.next(); if (omNode.getType() == OMNode.ELEMENT_NODE) { OMElement omElement = (OMElement) omNode; System.out.println(omElement.getLocalName()); if (omElement.getLocalName().toLowerCase().equals("user")) { User User = (User) BeanUtil.processObject(omElement,User.class,null,true,new DefaultObjectsupplier()); list.add(User); } } } return list; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。