WebService案例实例
前言:
由于工作需要,写一个接口,返回xml信息。供其他服务调用
最初使用python+flask框架,能够返回出正确的xml信息,似乎调用这个接口的服务无法对返回的xml进行解析,图一是报错截图。(开发说是协议问题)如果有知道的小伙伴可以给我留言!
Caused by: org.xml.sax.SAXException: Bad envelope tag: envelope 错误问题
转战使用Java语言开发
笔者之前未使用过Java,也是通过网上查找一些相关材料,最后写出这个简单的案例
准备工具:
1.下载 jdk,我用的1.8.0
2.安装 Java编译器,我用的Intellij IDEA 专业版
下面是正文
1.首先创建一个web项目来用做服务端,创建项目Java-WebServices。如果是社区版可能没有这个选项
项目中一共3个.java文件 接口与类一目了然 Login4AServices是一个发布类只有一个main方法
2.直接上代码:
Login4AServicesInterface.java
package com.webservice.server;
public interface Login4AServicesInterface {
}
Webcontextlistener.java
package com.web;
import com.webservice.server.Login4AServices;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.xml.ws.Endpoint;
public class Webcontextlistener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
Endpoint.publish("http://127.0.0.1:8146/uac/services/CheckAiuapTokenSoap", new Login4AServices());
System.out.println("通过servletcontextlistener部署webservice成功");
}
}
Login4AServices.java
package com.webservice.server;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService(targetNamespace = "http://127.0.0.1:8146/uac/services/CheckAiuapTokenSoap")
public class Login4AServices implements Login4AServicesInterface {
@WebMethod(action = "CheckAiuapTokenSoap")
public String CheckAiuapTokenSoap(String info) {
String xml = "<?xml version='1.0' encoding='UTF-8'?><USERRSP><HEAD><CODE>000</CODE><SID>000</SID><TIMESTAMP>20201221082621</TIMESTAMP><SERVICEID>CQYGPT</SERVICEID></HEAD><BODY><RSP>0</RSP><APPACCTID>aaa</APPACCTID><MAINACCTID>10007308</MAINACCTID></BODY></USERRSP>";
System.out.println("from client..." + " info :" + info);
return xml;
}
public static void main(String[] args) {
Endpoint.publish("http://127.0.0.1:8146/uac/services/CheckAiuapTokenSoap", new Login4AServices());
System.out.println(" 发布成功 ...");
}
}
4.执行Login4AServices.java文件就是发布
发布的时候需要确保端口号没有被占用
附上查看端口是否被占用命令:netstat -ano | findstr "port"
5.测试一下
我们使用上面的URL地址访问下
http://localhost:8146/uac/services/CheckAiuapTokenSoap?wsdl (一定要加上?wsdl)
用Java写的webservice接口就解决了前言中的工作问题,使用flask框架的却不行。。。。
依葫芦画瓢… 先记录下来,再作补充。
附上另外一篇项目实例,用python+flask框架
flask-web项目实例(二),设置响应消息为xml格式
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)