Myeclipse9.X 搭建 axis2 WebService
SetupWebService.java
/**
* WebService.java
* com.lewking.service
*
* Function: TODO
*
* ver date author
* ──────────────────────────────────────
* Ver 1.1 2011-6-9 lewking
*
* Copyright (c) 2011, TNT All Rights Reserved.
*/
package com.lewking.service;
import org.apache.log4j.Logger;
/**
* ClassName:WebService
* Function: TODO ADD FUNCTION
* Reason: TODO ADD REASON
*
* @author lewking
* @version
* @since Ver 1.1
* @Date 2011-6-9 下午09:44:41
*
* @see
* @ deprecated
*/
public class SetupWebService {
Logger logger = Logger.getLogger(SetupWebService.class.getName());
private String msg;
public String welcome(String t){
logger.info("---" + t + msg);
return t + msg;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="lewkingService" class="com.lewking.service.SetupWebService">
<property name="msg">
<value>Hello World</value>
</property>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
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_3_0.xsd">
<servlet>
<display-name>Apache-Axis Servlet</display-name>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis2.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet>
<display-name>
Apache-Axis Admin Servlet Web Admin</display-name>
<servlet-name>AxisAdminServlet</servlet-name>
<servlet-class>
org.apache.axis2.transport.http.AxisAdminServlet</servlet-class>
<load-on-startup>100</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>
<servlet-mapping>
<servlet-name>AxisAdminServlet</servlet-name>
<url-pattern>/axis2-admin/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>/axis2-web/index.jsp</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/axis2-web/Error/error404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/axis2-web/Error/error500.jsp</location>
</error-page>
<servlet>
<display-name>Axis Admin Servlet</display-name>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping>
<!-- spring 监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/applicationContext.xml</param-value>
</context-param>
</web-app>
在web-inf 下建 services/webservice/META-INF/services.xml 内容如下
<!--web service 名称-->
<service name="lewking" targetNamespace="http://service.lewking.com/">
<Description>
Please Type your service description here
</Description>
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
</parameter>
<!-- spring bean Id-->
<parameter name="SpringBeanName" locked="false">lewkingService</parameter>
<!-- webservice 类的完全路径-->
<parameter name="ServiceClass" locked="false">com.lewking.service.SetupWebService</parameter>
<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>
<excludeOperations>
<operation></operation>
</excludeOperations>
</service>
如果启动时遇到异常:
- The service cannot be found for the endpoint reference (EPR) /webservices/services
org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) /webservices/services
at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:65)
at org.apache.axis2.engine.Phase.invoke(Phase.java:333)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
at org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:136)
at org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:130)
at org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:829)
at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:255)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
解决:
把 WEB-INF 下的index.jsp 删除, 将 axis2.war 里的 axis2-web 目录拷贝到 webroot 目录下,就OK
Test Code:
/**
* WebServiceTest.java
* com.lewking.test
*
* Function: TODO
*
* ver date author
* ──────────────────────────────────────
* Ver 1.1 2011-6-8 lewking
*
* Copyright (c) 2011, TNT All Rights Reserved.
*/
package com.lewking.test;
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.junit.Test;
/**
* ClassName:WebServiceTest
* Function: TODO ADD FUNCTION
* Reason: TODO ADD REASON
*
* @author lewking
* @version
* @since Ver 1.1
* @Date 2011-6-8 下午11:24:34
*
* @see
* @ deprecated
*/
public class WebServiceTest {
@Test
public void test() throws ServiceException, RemoteException, MalformedURLException{
String endpoint ="http://localhost:8080/webservices/services/lewking?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://service.lewking.com","welcome"));
String ret = (String) call.invoke(new Object[] {"Samland"});
System.out.println("Sent 'Hello!', got '" + ret + "'");
}
}
分享到:
相关推荐
MyEclipse 8.5 安装 Axis2 插件...--org.apache.axis2.eclipse.service.plugin_1.6.2.jar --javax.xml.bind_2.1.9.v201005080401.jar --javax.xml.stream_1.0.1.v201004272200.jar --javax.xml_1.3.4.v201005080400.jar
使用axis2创建webservice步骤以及客户端调用service服务代码,如何编写和发布WebService,如何使用services.xml配置文件发布,如何用Java实现调用WebService的客户端程序等等
axis2中service.xml,session管理,module扩展
java基于Axis2调用C#开发的web service获取xml结果
webservice远程调用,返回String数据并生成xml文件到本地工程,在通过SAX解析器把数据解析...在client工程我使用的是XFire技术,在webservice工程我使用的是axis技术来实现Web service。我们可以学习其中的一种就可以了
xml 执行java源码 Axis <=1.4 远程命令执行(RCE) .../axis/services/AdminService HTTP/1.1 Host: localhost:8080 Connection: close Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*
Packages ...com.kingdee.bos.dao.xml.impl.loader com.kingdee.bos.db com.kingdee.bos.dictionaryedit com.kingdee.bos.dictionaryedit.wizard com.kingdee.bos.dictionarypreference ...
包括axis-bin-1_4.zip,axis教程集合.rar,mail.jar,tool.jar,activation.jar,xercesImpl.jar,xml-apis.jar,xmlsec-1.4.2.jar,有了这些,装个tomcat就能跑webservice测试程序了。可安装的tomcat,我也给传一下吧。有...
java通过webservice调用asmx的实例。
主要介绍了Java编程Webservice指定超时时间代码详解,简单介绍了webservice,然后分享了通过使用JDK对Webservice的支持进行Webservice调用实现指定超时时间完整示例,具有一定借鉴价值,需要的朋友可以参考下。
javax/xml/rpc/ServiceException异常,axis调用webservice。
编辑build.xml以反映本地路径。 编译和部署 ant deploy (包括编译和生成) 单拍 编译ant compile.service 生成wsdl ant generate.wsdl 生成客户端类ant generate.client 干净的ant clean 致谢 基于本教程
本文主要描述如何使用Apache开源项目Axis提供的API来实现Web Services。本文中的提到的例子只为了方便本文的描述而提出,者应有JAVA web 应用开发基础。应该具有看过WSDL,SOAP,XML等的基本规范。熟悉Eclipse+...
<deployment xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="SayHello" provider="java:RPC"> <parameter name="className" value="com.bwie.Test"/> *"/> </service> ...
1 支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security等; 2 使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现; 3 容易上手,可以方便快速地从pojo发布服务; 4 支持...