共计 7816 个字符,预计需要花费 20 分钟才能阅读完成。
最近开始学习了下在 Myeclipse 开发工具下基于 WebSerivce 的开发,下面将相关相关关键信息予以记录
1.Myeclipse 的安装,本文以 Myeclipse2014-blue 为开发环境,相关配置执行完善
2. 从 http://archive.apache.org/dist/ws/axis2/tools/ 下载 Axis2 包, 下载 axis2-eclipse-codegen-wizard.zip, 下载 axis2-eclipse-service-archiver-wizard.zip
3. 从 http://axis.apache.org/axis2/java/core/download.html 下载 (axis2-1.7.0-bin.zip,axis2-1.7.0-war.zip,axis2-eclipse-codegen-plugin-1.7.0.zip,axis2-eclipse-service-plugin-1.7.0.zip)
4. 下载说明:从步骤 1 下载出来的 Axis2_Codegen_Wizard_1.3.0 文件夹,Axis2_Service_Archiver_1.3.0 文件夹拷贝到 myeclipse 安装目录之 dropins 文件下,重启 myeclipse 下载到的 axis2-1.7.0-war.zip,拷贝文件之 tomact/webapps 目录下面, 重命名 axis2.war, 刷新文件夹,tomact 为解压该部署包,此时可以通过 tomact 服务访问 axis2 站,看到相关页面表示成功
5. 在步骤 4 中,注意文件夹 axis2\WEB-INF,下面有 3 个文件夹,conf,modules,services,lib 文件夹,稍后我们会用到
6. 下面借助于 axis2 来开发 webservice
7. 打开 myeclipse 新建 web project 项目,将步骤 5 中 conf,modules,services,lib 文件夹的拷贝之 WebRoot/WEB-INF/ 下面, 并在 WEB-INF 下面新建 Web.xml 文件,倘若 web.xml 存在则打开,添加以下代码配置 axis2
8.axis2 配置代码如下:
<!– 加载 Axis2 –>
<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>/services/*</url-pattern>
</servlet-mapping>
9. 在 WEB-INF/services/ 下新建 Axis2Service/META-INF/ 目录,新建文件 services.xml, 添加如下 webservice 服务配置代码
<!– HelloWorld 表示您的 WebService 服务名 –>
<service name=”HelloWorld” >
<!– HelloWorld 表示您的 WebService 服务描述 –>
<description>
HelloWorld Service Example
</description>
<!– 这个必须是这个服务的类路径 –>
<parameter name=”ServiceClass”>
cn.homily.action.HelloWorld
</parameter>
<!– 这个是这个服务的方法名 –>
<operation name=”getHello”>
<messageReceiver class=”org.apache.axis2.rpc.receivers.RPCMessageReceiver” />
</operation>
<operation name=”getWorld”>
<messageReceiver class=”org.apache.axis2.rpc.receivers.RPCMessageReceiver” />
</operation>
<operation name=”getHelloWorld”>
<!– 这里要注意,当没有返回值时才用
org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver,
没有参数还是用 RPCMessageReceiver–>
<messageReceiver class=”org.apache.axis2.rpc.receivers.RPCMessageReceiver” />
</operation>
</service>
10. 在 src 包下面添加子包 cn.homily.action,添加 HelloWorld.java 文件, 其代码如下:
package cn.homily.action;
// 服务名
public class HelloWorld
{<br> // 服务方法
public String getHello(String name)
{
return “Hello,” + name + “.”;
}
// 服务方法
public String getWorld(String name)
{
return “World,” + name + “.”;
}
// 服务方法
public String getHelloWorld()
{
return “Hello,World”;
}
}
经过以上步骤,我们的 WebService 基本代码已经全了,现在看看实际效果。
11. 现在打包我们的 Web-Project,部署我们的 Web-Project 至 tomact, 现在我们运行,在浏览器输入如下地址 http://zgc-20150226yxm:8080/sayHello2Axis/services/HelloWorld?wsdl。如果在浏览器里面看到了以下代码,说明我们的 Web-Service 服务 Demo 开发完成。正确的页面效果如下:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<wsdl:definitions xmlns:wsdl=”http://schemas.xmlsoap.org/wsdl/” xmlns:ns1=”http://org.apache.axis2/xsd” xmlns:ns=”http://action.homily.cn” xmlns:xs=”http://www.w3.org/2001/XMLSchema” xmlns:soap=”http://schemas.xmlsoap.org/wsdl/soap/” xmlns:soap12=”http://schemas.xmlsoap.org/wsdl/soap12/” xmlns:http=”http://schemas.xmlsoap.org/wsdl/http/” xmlns:mime=”http://schemas.xmlsoap.org/wsdl/mime/” xmlns:wsaw=”http://www.w3.org/2006/05/addressing/wsdl” targetNamespace=”http://action.homily.cn”>
<wsdl:documentation>HelloWorld</wsdl:documentation>
<wsdl:types>…</wsdl:types>
<wsdl:message name=”getHelloRequest”>
<wsdl:part name=”parameters” element=”ns:getHello”/>
</wsdl:message>
<wsdl:message name=”getHelloResponse”>
<wsdl:part name=”parameters” element=”ns:getHelloResponse”/>
</wsdl:message>
<wsdl:message name=”getHelloWorldRequest”>
<wsdl:part name=”parameters” element=”ns:getHelloWorld”/>
</wsdl:message>
<wsdl:message name=”getHelloWorldResponse”>
<wsdl:part name=”parameters” element=”ns:getHelloWorldResponse”/>
</wsdl:message>
<wsdl:message name=”getWorldRequest”>
<wsdl:part name=”parameters” element=”ns:getWorld”/>
</wsdl:message>
<wsdl:message name=”getWorldResponse”>
<wsdl:part name=”parameters” element=”ns:getWorldResponse”/>
</wsdl:message>
<wsdl:portType name=”HelloWorldPortType”>
<wsdl:operation name=”getHello”>
<wsdl:input message=”ns:getHelloRequest” wsaw:Action=”urn:getHello”/>
<wsdl:output message=”ns:getHelloResponse” wsaw:Action=”urn:getHelloResponse”/>
</wsdl:operation>
<wsdl:operation name=”getHelloWorld”>
<wsdl:input message=”ns:getHelloWorldRequest” wsaw:Action=”urn:getHelloWorld”/>
<wsdl:output message=”ns:getHelloWorldResponse” wsaw:Action=”urn:getHelloWorldResponse”/>
</wsdl:operation>
<wsdl:operation name=”getWorld”>
<wsdl:input message=”ns:getWorldRequest” wsaw:Action=”urn:getWorld”/>
<wsdl:output message=”ns:getWorldResponse” wsaw:Action=”urn:getWorldResponse”/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name=”HelloWorldSoap11Binding” type=”ns:HelloWorldPortType”>
<soap:binding transport=”http://schemas.xmlsoap.org/soap/http” style=”document”/>
<wsdl:operation name=”getHello”>
<soap:operation soapAction=”urn:getHello” style=”document”/>
<wsdl:input>
<soap:body use=”literal”/>
</wsdl:input>
<wsdl:output>
<soap:body use=”literal”/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name=”getHelloWorld”>
<soap:operation soapAction=”urn:getHelloWorld” style=”document”/>
<wsdl:input>
<soap:body use=”literal”/>
</wsdl:input>
<wsdl:output>
<soap:body use=”literal”/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name=”getWorld”>
<soap:operation soapAction=”urn:getWorld” style=”document”/>
<wsdl:input>
<soap:body use=”literal”/>
</wsdl:input>
<wsdl:output>
<soap:body use=”literal”/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name=”HelloWorldSoap12Binding” type=”ns:HelloWorldPortType”>
<soap12:binding transport=”http://schemas.xmlsoap.org/soap/http” style=”document”/>
<wsdl:operation name=”getHello”>
<soap12:operation soapAction=”urn:getHello” style=”document”/>
<wsdl:input>
<soap12:body use=”literal”/>
</wsdl:input>
<wsdl:output>
<soap12:body use=”literal”/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name=”getHelloWorld”>
<soap12:operation soapAction=”urn:getHelloWorld” style=”document”/>
<wsdl:input>
<soap12:body use=”literal”/>
</wsdl:input>
<wsdl:output>
<soap12:body use=”literal”/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name=”getWorld”>
<soap12:operation soapAction=”urn:getWorld” style=”document”/>
<wsdl:input>
<soap12:body use=”literal”/>
</wsdl:input>
<wsdl:output>
<soap12:body use=”literal”/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name=”HelloWorldHttpBinding” type=”ns:HelloWorldPortType”>
<http:binding verb=”POST”/>
<wsdl:operation name=”getHello”>
<http:operation location=”getHello”/>
<wsdl:input>
<mime:content type=”application/xml” part=”parameters”/>
</wsdl:input>
<wsdl:output>
<mime:content type=”application/xml” part=”parameters”/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name=”getHelloWorld”>
<http:operation location=”getHelloWorld”/>
<wsdl:input>
<mime:content type=”application/xml” part=”parameters”/>
</wsdl:input>
<wsdl:output>
<mime:content type=”application/xml” part=”parameters”/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name=”getWorld”>
<http:operation location=”getWorld”/>
<wsdl:input>
<mime:content type=”application/xml” part=”parameters”/>
</wsdl:input>
<wsdl:output>
<mime:content type=”application/xml” part=”parameters”/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name=”HelloWorld”>
<wsdl:port name=”HelloWorldHttpSoap11Endpoint” binding=”ns:HelloWorldSoap11Binding”>
<soap:address location=”http://zgc-20150226yxm:8080/sayHello2Axis/services/HelloWorld.HelloWorldHttpSoap11Endpoint/”/>
</wsdl:port>
<wsdl:port name=”HelloWorldHttpSoap12Endpoint” binding=”ns:HelloWorldSoap12Binding”>
<soap12:address location=”http://zgc-20150226yxm:8080/sayHello2Axis/services/HelloWorld.HelloWorldHttpSoap12Endpoint/”/>
</wsdl:port>
<wsdl:port name=”HelloWorldHttpEndpoint” binding=”ns:HelloWorldHttpBinding”>
<http:address location=”http://zgc-20150226yxm:8080/sayHello2Axis/services/HelloWorld.HelloWorldHttpEndpoint/”/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-05/143334.htm