我正在尝试创建一个网络服务,我的交易工具是:
**
Axis2, Eclipse, Tomcat, Ant
**
我需要从代码创建一个 Web 服务,即编写一个基本的 Java 类,它将具有要在 WSDL 中声明的方法。然后使用 java2WSDL.sh 创建我的 WSDL。
那么,这种做法是否正确:
- 用实际的业务逻辑编写我的 Java 类
package packageNamel; public class Hello{ public void World(String name) { SOP("Hello" + name); } }
- 现在,当我将这个 Hello.java 传递给 java2WSDL.sh 时,它会给我 WSDL。
最后,我将编写 services.xml 文件,并创建具有以下目录结构的 Hello.aar:
你好.aar
- 包名
- 你好类
- 元信息
- 服务.xml
- list .MF
- 你好.WSDL
- 包名
现在,我假设,当我将 aar 放入 tomcat1/webapps/axis2/WEB-INF/services 时,我的服务将被部署
但是,我的问题来了,我如何访问方法 World(String name)
???!!,即我对客户端代码一无所知!
请赐教如何制作一个非常基本的网络服务并调用该方法。上面描述的 3 个步骤可能是错误的。这是一个社区维基,可以随意编辑。
谢谢
最佳答案
我假设您只对 Web 服务客户端感兴趣?
选项1
调用 Web 服务正在使用 Axis2 REST support ,例如:
http://localhost:8080/axis2/services/MyService/myOperation?param1=one¶m2=two
选项 2
使用SOAPUI .它可以通过读取服务的 WSDL 为您生成 SOAP 消息。我客户的测试人员已经广泛使用它,但对 Web 服务技术只有非常广泛的了解。一个令人印象深刻的工具。
选项3
Groovy 客户端(其他基于 JVM 的语言采用相同的方法)
使用 wsdl2java 工具为莎士比亚网络服务创建客户端 stub 类:
生成.sh:
$AXIS2_HOME/bin/wsdl2java.sh -d adb -s -o build -uri http://www.xmlme.com/WSShakespeare.asmx?WSDL
ant -file build/build.xml
GetSpeech.groovy:
// Dependencies
// ============
import com.xmlme.webservices.ShakespeareStub
@Grapes([
@Grab(group='org.apache.axis2', module='axis2-kernel', version='1.5.1'),
@Grab(group='org.apache.axis2', module='axis2-adb', version='1.5.1'),
@Grab(group='org.apache.axis2', module='axis2-transport-local', version='1.5.1'),
@Grab(group='org.apache.axis2', module='axis2-transport-http', version='1.5.1'),
@Grab(group='xerces', module='xercesImpl', version='2.6.2'),
@GrabConfig(systemClassLoader=true)
])
// Main program
// ============
def stub = new ShakespeareStub()
// Request payload
def request = new ShakespeareStub.GetSpeech()
request.setRequest("Friends, romans, countrymen")
// Send request
response = stub.getSpeech(request)
println response.getGetSpeechResult()
使用 -cp 参数将生成的代码添加到脚本的类路径中
groovy -cp build/build/classes GetSpeech
关于java - 使用 Axis2 创建 Web 服务的步骤 - 客户端代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2559074/