基于SoapUI的JBossWS Web Service开发入门
SoapUI是一款先进的Web Service开发和测试工具,它既可作为桌面应用软件使用,也可利用插件集成到Eclipse,maven2.X,netbeans和intellij中使用。您可以到SoapUI的SourceForge站点下载最新版本。
开发环境:JBoss AS 4.2.2GA + JBossTools 2.0.1GA + SoapUI 2.0.2
1. 创建Dynamic Web Project项目
1.1. 在JBossTools中选择菜单“New->Project…”,在出现的对话框中选择“Web->Dynamic Web Project”;
1.2. 在出现的“Dynamic Web Project”对话框中输入如下信息:
Project Name:echows
Target Runtime:JBoss 4.2 Runtime
Configurations:Default Configuration for JBoss 4.2 Runtime
1.3. 选择“Finish”结束创建Dynamic Web Project项目。
2. 编辑WSDL文件
2.1. 在JBossTools中选择菜单“New->Other…”,在出现的对话框中选择“Web Services->WSDL”;
2.2. 在出现的“New WSDL File”对话框中输入如下信息:
Enter or Select the Parent Folder:echows/WebContent/WEB-INF
File name:echows.wsdl
2.3. 选择“Finish”结束创建WSDL文件,JBossTools会在工作台打开刚创建的WSDL文件,选择“Design”视图为echows接口添加一个echo操作,修改后的wsdl文件内容如下:
<?xml version=“1.0″ encoding=“UTF-8″?>
<wsdl:definitions xmlns:soap=“http://schemas.xmlsoap.org/wsdl/soap/”
xmlns:tns=“http://www.jbossweek.com/echows/”
xmlns:wsdl=“http://schemas.xmlsoap.org/wsdl/”
xmlns:xsd=“http://www.w3.org/2001/XMLSchema” name=“echows”
targetNamespace=“http://www.jbossweek.com/echows/”>
<wsdl:types>
<xsd:schema
targetNamespace=“http://www.jbossweek.com/echows/”>
<xsd:element name=“echo”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=“in” type=“xsd:string” />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name=“echoResponse”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=“out” type=“xsd:string” />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name=“echoRequest”>
<wsdl:part element=“tns:echo” name=“msg” />
</wsdl:message>
<wsdl:message name=“echoResponse”>
<wsdl:part element=“tns:echoResponse” name=“msg” />
</wsdl:message>
<wsdl:portType name=“echows”>
<wsdl:operation name=“echo”>
<wsdl:input message=“tns:echoRequest” />
<wsdl:output message=“tns:echoResponse” />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name=“echowsSOAP” type=“tns:echows”>
<soap:binding style=“document”
transport=“http://schemas.xmlsoap.org/soap/http” />
<wsdl:operation name=“echo”>
<soap:operation
soapAction=“http://www.jbossweek.com/echows/NewOperation” />
<wsdl:input>
<soap:body use=“literal” />
</wsdl:input>
<wsdl:output>
<soap:body use=“literal” />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name=“echows”>
<wsdl:port binding=“tns:echowsSOAP” name=“echowsSOAP”>
<soap:address
location=“http://@jboss.binding.address@:8080/echows/echo” />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
3. 实现Web Service
3.1. 在JBossTools中切换到“Java Perspective”,右键选中echows项目,在弹出的上下文菜单中选择“soapUI->Add soapUI Nature”,为echows项目添加soapUI支持;
3.2. 右键选择“WebContent->WEB-INF”目录下的echows.wsdl文件,在弹出的上下文菜单中选择“soapUI->Add to soapUI Project”,将echows.wsdl文件添加到soapUI项目中;
3.3. 切换到“soapUI Perspective”,打开echows项目,右键选择“echowsSOAP”接口,在弹出的上下文菜单中选择“Generate Code->JBossWS JAX-WS Artifacts”,在弹出的“JBossWS JAX-WS Artifacts”对话框中单击“Tools”按钮,在弹出的“soapUI Preferences”对话框中输入如下信息:
JBossWS wstools:JBoss安装目录下的bin目录(注:该JBoss已经安装了JBossWS)
选择“Ok”回到“JBossWS JAX-WS Artifacts”对话框,并输入如下信息:
Source Directory:src
Package:demo
钩选Keep(keep generated files),
单击“Generate”按钮生成Web Service框架代码。
3.4. 在demo包下新建一个实现Web Service的EchowsImpl.java文件,其内容如下:
package demo;
import javax.jws.WebService;
@WebService(endpointInterface=“demo.Echows”)
public class EchowsImpl implements Echows {
public String echo(String in) {
return in;
}
}
3.5. 打开WebContent->WEB-INF目录下的web.xml文件,添加一个Servlet:
Servlet-Name:EchowsServlet
Servlet-Class:demo.EchowsImpl
然后再添加一个Servlet Mapping:
Servlet-Name:EchowsServlet
url-pattern:/echo
4. 部署与测试
4.1. 打开“JBoss Server View”,将echows.war包部署到JBossAS服务器上;启动JBossAS服务器;
4.2. 在JBossTools中切换到“soapUI Perspective”,选择“echows->echowsSOAP->echo->Request1”,在打开的request1编辑视图中,将<in>元素的内容修改为:hello jbossweek!。
4.3. 点击request1编辑视图左上方的“submit”按钮,request1编辑视图的右边窗格就会出现请求的结果,效果如下:
4.4. 恭喜您,WebService开发成功!





