我正在尝试创建一个Web服务,我的交易工具是:
**
Axis2,Eclipse,Tomcat,Ant
**
我需要从Code创建一个Web服务,即编写一个基本的java类,它将具有在WSDL中声明的方法。然后使用java2WSDL.sh创建我的WSDL。
所以,这种方法是否正确:
package packageNamel; public class Hello{ public void World(String name) { SOP("Hello" + name); } }
最后,我将编写services.xml文件,并使用以下dir结构创建Hello.aar:
Hello.aar
现在,我假设,当我将aar放入tomcat1 / webapps / axis2 / WEB-INF / services时,我的服务将被部署
但是,这就是我的问题,我如何访问方法World(String name)
??? !!,即我对客户端代码一无所知!
请告诉我制作一个非常基本的Web服务并调用该方法。上述3个步骤可能是错误的。这是一个社区维基,随时可以编辑。
由于
答案 0 :(得分:4)
我假设您只对网络服务客户感兴趣?
调用Web服务正在使用Axis2 REST support,例如:
http://localhost:8080/axis2/services/MyService/myOperation?param1=one¶m2=two
使用SOAPUI。它可以通过读取服务的WSDL为您生成SOAP消息。我的客户的测试人员一直在广泛使用它,只是对Web服务技术的广泛理解。一个令人印象深刻的工具。
Groovy客户端(其他基于JVM的语言的方法相同)
使用 wsdl2java 工具为莎士比亚网络服务创建客户端存根类:
<强> generate.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
答案 1 :(得分:0)
如果您有权访问WSDL,则可以使用以下代码/ JAX-WS client来调用任何基于SOAP的Web服务。
DeckCards
在第2行中,cardsselected.name
第一个参数是WSDL中使用的命名空间,第二个参数只是服务名称。