安徽茶叶网站建设,手机网页制作软件,wordpress weiaid,wordpress评论框修改WebService案例实例
前言#xff1a;
由于工作需要#xff0c;写一个接口#xff0c;返回xml信息。供其他服务调用
最初使用pythonflask框架#xff0c;能够返回出正确的xml信息#xff0c;似乎调用这个接口的服务无法对返回的xml进行解析#xff0c;图一是报错截图。…WebService案例实例
前言
由于工作需要写一个接口返回xml信息。供其他服务调用
最初使用pythonflask框架能够返回出正确的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;//通过用ServletContextListener发布
public class Webcontextlistener implements ServletContextListener {Overridepublic void contextDestroyed(ServletContextEvent arg0) {}Overridepublic void contextInitialized(ServletContextEvent arg0) {//用endpoint发布webserviceEndpoint.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 version1.0 encodingUTF-8?USERRSPHEADCODE000/CODESID000/SIDTIMESTAMP20201221082621/TIMESTAMPSERVICEIDCQYGPT/SERVICEID/HEADBODYRSP0/RSPAPPACCTIDaaa/APPACCTIDMAINACCTID10007308/MAINACCTID/BODY/USERRSP;System.out.println(from client... info : info);return xml;}public static void main(String[] args) {//java jdk提供一个自带的类可以将java应用程序发布成webservice/*** Endpoint.publish(String address, Object implementor):* 参数1提供服务对外的访问地址* 参数2提供服务的类* */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框架的却不行。。。。 依葫芦画瓢… 先记录下来再作补充。
附上另外一篇项目实例用pythonflask框架 flask-web项目实例二设置响应消息为xml格式