O2OA (翱途) o2server 调用 webServices jaxws 样例

本文分两部分介绍如何在 o2server 服务器中调用 webServices(jaxws)服务.

第一部分介绍如何在tomcat上搭建一个webServices(jaxws)服务.

第二部分介绍如何在o2server服务器上来调用上面创建的服务.

O2OA (翱途)官网:http://www.o2oa.net

一、在tomcat上搭建一个webServices服务

介绍如何编写托管在 Apache Tomcat 服务器上运行的 Java XML Web 服务 (JAX-WS) 的 Java Web 应用程序.本教程重点介绍使客户端能够访问部署在 Tomcat 上的 Web 服务的项目配置.

  • 添加 JAX-WS 运行时依赖关系

请将以下依赖项添加到项目的 pom.xml 文件中:

    
    com.sun.xml.ws
    jaxws-rt
    2.3.2
    

  • 创建一个简单的 XML/SOAP Web 服务

创建一个简单的 Java XML Web 服务类,如下所示:

package net.o2oa.scratch.tomcat9.jaxws;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
@WebServicepublic class JaxwsEcho {    
@WebMethod
    @SOAPBinding(style = Style.DOCUMENT)
    public String sayHello(String name) {        
    return "Hello, " + name + "!";
    }
}

配置 webServices 服务点


  
  

  • 配置 JAX-WS 侦听器和 Servlet

将以下 XML 代码添加到 Web 部署描述符文件 (web.xml):

    
    
        com.sun.xml.ws.transport.http.servlet.WSServletContextListener    
    
    
    JAXWSServlet
    
        com.sun.xml.ws.transport.http.servlet.WSServlet   
    
    1
    
    JAXWSServlet
    /ws/*
    

 
  
  • 查看接口

将以上程序进行打包,打包成scratch_tomcat9.war. 然后将文件复制到Tomcat9的webapps目录下,启动tomcat. 访问http://127.0.0.1:8080/sctatch_tomcat9/ws/echo,可以看到:

O2OA (翱途) o2server 调用 webServices jaxws 样例_第1张图片

  • tomcat webSerivces 样例 scratch_tomcat9.war

二、o2server调用webServices(jaxws)

2.1 在流程中的"服务调用"活动中调用webService(jaxws)

O2OA (翱途) o2server 调用 webServices jaxws 样例_第2张图片

填入以下参数

WSDL地址:

http://127.0.0.1:8080/scratch_tomcat9/ws/echo?wsdl

调用方法:

sayHello

参数脚本:
this.parameters.add("O2OA");

响应脚本:
var txt = "webServices响应:";print(txt + this.response.get()[0]);
这样我们就完成了调用外部webServices(jaxws)的配置.

     流程运行至服务调用活动后服务端可以看到输出日志:

O2OA (翱途) o2server 调用 webServices jaxws 样例_第3张图片

这样就正确的调用到了webServices(jaxws).

2.2  在脚本中调用soap(jaxws)方法访问webServices(jaxws)

我们同样可以在脚本中调用webServices(jaxws)服务,系统已经注入了服务对象以方便webServices(jaxws)调用.

在事件中通过调用this.services()对象可以获得调用webServices(jaxws)的封装对象.

O2OA (翱途) o2server 调用 webServices jaxws 样例_第4张图片

var ObjectArray = Java.type("java.lang.Object[]");
var param = new ObjectArray(1);
param[0] = "O2OA";
var resp = this.service.soap("http://127.0.0.1:8080/scratch_tomcat9/ws/echo?wsdl", "sayHello", param);print("soap响应:" + resp[0])
 
  

流程运行至脚本所在的事件后可以看到输出日志:

O2OA (翱途) o2server 调用 webServices jaxws 样例_第5张图片

这样就正确的调用到了webServices(jaxws).

在服务中soap和jaxws这两个方法是等价的.

如果对方的webServices需要一些额外的数据才可以访问,比如需要认证信息,那么可以调用带请求头参数的方法进行访问.

2.3 在脚本中通过发送xml直接调用webServices(jaxws)

特殊使用场景下也可以直接发送xml的方式来调用webServices(jaxws).

O2OA (翱途) o2server 调用 webServices jaxws 样例_第6张图片

var xml ="";
xml += "";
xml += "";
xml += "";
xml += "张三";
xml += "";
xml += "";
xml += "";
var resp = this.service.soapXml("http://127.0.0.1:8080/scratch_tomcat9/ws/echo?wsdl", xml);
print("soap xml 响应:" + resp[0]);

直接向服务地址发送xml报文调用服务:

O2OA (翱途) o2server 调用 webServices jaxws 样例_第7张图片

你可能感兴趣的:(开源软件)