java - 使用 Axis2 创建 Web 服务的步骤 - 客户端代码

标签 java web-services axis2

我正在尝试创建一个网络服务,我的交易工具是:

**

Axis2, Eclipse, Tomcat, Ant

**

我需要从代码创建一个 Web 服务,即编写一个基本的 Java 类,它将具有要在 WSDL 中声明的方法。然后使用 java2WSDL.sh 创建我的 WSDL。

那么,这种做法是否正确:

  1. 用实际的业务逻辑编写我的 Java 类
package packageNamel;

public class Hello{
public void World(String name)
          {
            SOP("Hello" + name);
          }
}
  1. 现在,当我将这个 Hello.java 传递给 java2WSDL.sh 时,它会给我 WSDL。
  2. 最后,我将编写 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&param2=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/

相关文章:

java - 从任何网络Flutter访问HTTP服务器

mysql - 限制通过 localhost 访问 MySQL DB,而不是通过 IP?

java - 如何限制对 wsdl 以外的所有内容的访问?

web-services - 设置 SOAPAction HTTP header 时的 Axis2 问题

c - 非官方 axis2/c 中的测试示例

java - 使用 Vaadin 14 中的 "Upload"小部件将文本文件的内容上传到内存中的字符串

java - 如何在spring boot中设置副本集?

c# - WCF 无法解析 Java Soap 响应

web-services - axis2 网络服务中的返回列表

java - 无法从 Java WebService 连接到 MS Access 数据库