简介:
利用NodeJS调用Java发布的WS接口:http://192.168.0.190:8888/WSLogin?wsdl
安装环境及版本:
系统环境:CentOS Linux release 7.5.1804 (Core)
JDK版本:apache-tomcat-9.0.36.tar.gz
Tomcat版本:apache-tomcat-9.0.36.tar.gz
NodeJS版本:node-v14.4.0-linux-x64.tar.xz
Eclipse IDE版本:Eclipse IDE for Enterprise Java Developers
Version: 2020-06 (4.16.0)
Build id: 20200615-1200
一、前提条件
参考《JAVA发布WebService接口》构建WS接口:http://192.168.0.190:8888/WSLogin?wsd
参考《NodeJS安装(Centos)》安装NodeJS
二、修改默认发布目录
将默认发布目录由/usr/local/tomcat/apache-tomcat-9.0.36/webapps/修改为:/usr/local/tomcat/apache-tomcat-9.0.36/webapps/html
修改:vi /usr/local/tomcat/apache-tomcat-9.0.36/conf/server.xml,添加
<Host name="192.168.0.190" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="html" debug="0" reloadable="true" crossContext="true"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="tot_log." suffix=".txt" timestamp="true"/>
</Host>
三、新建NodeJS文件
在/usr/local/tomcat/apache-tomcat-9.0.36/webapps目录下新建html目录:
命令:mkdir /usr/local/tomcat/apache-tomcat-9.0.36/webapps/html
[root@localhost ~]# ll /usr/local/tomcat/apache-tomcat-9.0.36/webapps/
total 368
drwxr-x--- 16 root root 4096 Jun 28 19:46 docs
drwxr-x--- 6 root root 83 Jun 28 19:46 examples
drwxr-x--- 5 root root 87 Jun 28 19:46 host-manager
drwxr-xr-x 3 root root 66 Jun 28 22:09 html
drwxr-x--- 5 root root 103 Jun 28 19:46 manager
drwxr-x--- 3 root root 283 Jun 28 19:46 ROOT
drwxr-x--- 4 root root 37 Jun 28 21:10 WSLogin
-rw-r--r-- 1 root root 370342 Jun 28 21:10 WSLogin.war
进入html目录,初始化NodeJS环境以及安装需要的包:cd html
npm init
npm install soap
npm install sinon
npm install request
npm install debug
pm install lodash
npm install concat-stream
npm install optional
npm install ejs
npm install xml-crypto
npm install node-uuid
npm install sax
npm install strip-bom
npm install selectn
npm install mocha ?save-dev
在修改后的发布目录/usr/local/tomcat/apache-tomcat-9.0.36/webapps/html下新建NodeJS文件:vi main.js
var soap = require('soap');
var url = 'http://192.168.0.190:8888/WSLogin?wsdl';
//使用soap,根据wsdl地址创建客户端
soap.createClient(url,function(err,client) {
console.log("one " + err);
if(err){
console.log(err);
}
console.log("two " + err);
//var args = new String("3115");
//返回一个客户端,并且传参调用Java的接口,接收返回的数据
client.sayHello({arg0:'mike '}, function(error, result) {
//打印接收到的数据
console.log(error);
console.log(result);
});
});
四、运行调用
在html目录下,执行命令:node.main.js