tomcat8配置HTTPS,简单webservice客户端调用
- 格式:doc
- 大小:162.64 KB
- 文档页数:7
SOAP(Simple Object Access Protocol)是一种基于XML的通讯协议,用于在网络中不同的应用程序之间交换结构化的信息。
而Web Service是一种通过网络对不同计算机系统进行交互的技术,它使用SOAP协议进行通讯。
在进行SOAP调用的过程中,有时候会遇到HTTP 405错误,本文将围绕SOAP调用Web Service时出现HTTP 405错误的原因和解决方法展开讨论。
1. HTTP 405错误的原因当进行SOAP调用时,常见的HTTP 405错误可能有以下几个原因:1) 方法不被允许:HTTP 405错误表示所请求的资源上不允许请求行中所指定的方法。
这通常是因为Web服务配置的问题,Web服务端配置不正确,没有启用对特定方法的支持。
2) 请求格式错误:HTTP 405错误可能是因为SOAP请求的格式不正确,或者没有按照Web服务提供的规范进行请求。
3) 代理问题:有时候代理可能会干扰SOAP调用,导致HTTP 405错误的发生。
2. 解决HTTP 405错误的方法针对上述可能的原因,我们可以采取以下方式来解决HTTP 405错误:1) 检查Web服务端配置:确认Web服务端是否正确地配置了允许所请求的方法。
在服务端配置中添加对请求方法的支持可以解决此类问题。
2) 检查SOAP请求格式:确保SOAP请求的格式和规范正确。
可以通过日志或者调试工具来查看请求的格式是否符合要求。
3) 排除代理干扰:如果代理可能会造成问题,可以尝试直接访问Web 服务端,或者调整代理的设置来解决问题。
3. 相关工具和调试方法在解决HTTP 405错误的过程中,我们可以使用一些工具和调试方法来帮助定位和解决问题:1) 使用SOAP调试工具:可以使用一些SOAP调试工具来查看请求和响应的XML格式,以便于分析和定位问题。
2) 查看服务端日志:查看Web服务端的日志可以帮助我们了解具体的请求情况,从而找出问题所在。
Webservice接口请求方法一、概述Webservice是一种基于网络的应用程序接口(API),它能够通过网络来创建和提供服务。
在日常开发中,我们经常需要与其他系统进行交互,并获取相应的数据或服务。
Webservice接口请求方法就是用来实现这一目的的。
二、Webservice接口请求的方式1. HTTP GET请求:当我们需要从Webservice接口获取数据时,可以使用HTTP GET请求。
通过在URL中附加相应的参数,可以向服务端发送请求,并获取相应的数据。
GET请求的参数会以键值对的形式出现在URL中,例如:xxx。
2. HTTP POST请求:如果需要向Webservice接口提交数据,可以使用HTTP POST请求。
通过向服务端发送POST请求,我们可以将数据放入请求的body中,并提交给服务端进行处理。
3. SOAP请求:SOAP(Simple Object Access Protocol)是一种基于XML的通信协议,通过SOAP请求可以实现不同评台之间的通信。
这种方式一般需要事先定义好XML格式的请求数据,并通过HTTP传输到服务端。
4. RESTful请求:RESTful(Representational State Transfer)是一种基于HTTP协议的设计风格,通过RESTful请求可以实现对资源的增删改查操作。
在RESTful请求中,通常使用HTTP的不同方法(如GET、POST、PUT、DELETE)来实现相应的操作。
三、Webservice接口请求的参数1. 请求URL:Webservice接口的请求位置区域,即服务端提供的接口位置区域。
2. 请求方法:即使用的HTTP方法,可以是GET、POST、PUT或DELETE等。
3. 请求头部:一些额外的请求头部信息,如Content-Type、Authorization等。
4. 请求参数:需要传递给服务端的参数,可以是键值对、JSON格式或XML格式的数据。
Tomcat发布jax-ws服务
阅读本文之前,可先看下我之前发的一篇文章《Java RPC 原生实现之WebService详解》,文中所写服务的发布和调用都以Java应用程序方式(Main方法)运行。
如何在Tomcat应用服务器中发布服务呢,本文将详细介绍。
一项目结构
项目结构如下
引入必须的jar包:webservices-api.jar、webservices-extra-api.jar、webservices-extra.jar、webservices-rt.jar。
二写接口
服务以RPC风格发布,并在服务方法上加了@WebMethod注解,注意下operationName属性
三写实现
四服务配置
在WEB-INF下新建文件sun-jaxws.xml,内容如下
Implementation:全路径实现类
url-pattern:服务访问路径
然后,在web.xml中增加web services配置,内容如下
五发布服务
将项目部署到Tomcat,访问服务路径验证,以本项目为例:http://localhost:8080/rpcWebDemo/ws/calculatorService
查看wsdl内容
总体来看,在Tomcat中发布原生服务还是比较简单的,引入必须的jar包,配置sun-jaxws.xml和web.xml文件即可。
wsimport 调用webservice示例wsimport是Java 提供的一个工具,用于生成与Web Services Description Language (WSDL) 文件相对应的Java 代码,以便客户端可以通过该代码调用Web 服务。
下面是一个简单的示例,演示如何使用wsimport工具调用Web 服务。
1.创建Web 服务:首先,确保你有一个可用的Web 服务,并获取其WSDL 地址。
你可以在浏览器中直接访问WSDL 地址,以获取WSDL 文件的内容。
2.使用wsimport 生成客户端代码:打开终端或命令行窗口,使用以下命令生成客户端代码:wsimport -d . -p com.example.client http://your-web-service-url?wsdl其中,-d用于指定生成的类文件的输出目录,-p用于指定生成的Java 类的包名,而http://your-web-service-url?wsdl是你的Web 服务的WSDL 地址。
3.编写客户端代码:创建一个Java 类,用于实际调用Web服务。
以下是一个简单的示例:package com.example.client;public class WebServiceClient {public static void main(String[] args) {// 创建Web 服务客户端对象YourWebService service = new YourWebService();YourWebServicePortType port =service.getYourWebServicePort();// 调用Web 服务方法String result = port.yourWebServiceMethod("Hello, Web Service!");// 处理返回结果System.out.println("Web Service Response: " + result);}}4.编译和运行客户端代码:编译生成的客户端代码:javac com/example/client/*.java运行客户端代码:java com.example.client.WebServiceClient这会执行客户端代码,调用Web 服务的方法并输出结果。
以下部署方式都是针对tomcat5.0以上版本。
Tomcat4中的Manager和Admin管理工具其实就是利用它来部署的。
在Tomcat5中提出了Context descriptor这个概念,且为其配置了一个专有目录,而不像Tomcat4那样大杂烩一般地放置在$appBase目录下。
Context descriptor是一个只包含Context元素的xml格式的部署文件,其中Context元素与server.xml中的Context元素配置相同。
对于一个给定的主机,Context descriptor放置在$CATALINA_HOME/conf/[enginename]/[hostname]/目录下面。
Tomcat5默认安装时,在$CATALINA_HOME/conf/Catalina/localhost目录中有admin.xml和manager.xml,是两个管理工具的部署描述符文件。
而这两个文件在Tomcat4中是放置在$CATALINA_HOME/webapps目录下面的。
使用方法:(1)在$CATALINA_HOME/conf/[enginename]/[hostname]/目录下新建xxx.xml文档(2)在xxx.xml文档中配置如下<Context docBase="${catalina.home}/server/webapps/host-manager"privileged="true" antiResourceLocking="false" antiJARLocking="false"> </Context>注:docBase也可以设置为[eclipse的workplace]/[project]/webroot静态部署是指在Tomcat运行之前就把相关的Web应用程序放置到合适的目录,在Tomcat启动的时候自动来部署这些应用程序。
【JavaEE学习80下】【调⽤WebService服务的四种⽅式】【WebService。
不考虑第三⽅框架,如果只使⽤JDK提供的API,那么可以使⽤三种⽅式调⽤WebService服务;另外还可以使⽤Ajax调⽤WebService 服务。
预备⼯作:开启WebService服务,使⽤jdk命令wsimport⽣成调⽤源代码package com.kdyzm.ws;import javax.jws.WebService;import javax.xml.ws.Endpoint;@WebServicepublic class MyWsServer {public String calculate(int input){System.out.println("接收到请求数据:"+input);return input*input+"";}public static void main(String[] args) {Endpoint.publish("http://localhost:9090/ws", new MyWsServer());System.out.println("server ready ......");}} ⽣成源代码命令:wsimport -s . http://localhost:9090/ws?wsdl 可能出现的问题参考: 因为出现了上述问题,所以本次测试环境使⽤jdk 1.7。
⽅法⼀:使⽤最简单、效率最⾼的⽅法调⽤WebService服务 将⽣成的java⽂件包括⽂件夹直接导⼊项⽬,并使⽤其提供的API。
1package com.kdyzm.call.method;23import com.kdyzm.ws.MyWsServer;4import com.kdyzm.ws.MyWsServerService;56/**7 * 第⼀种⽅式就是使⽤wsimport命令获取所有的需要调⽤的代码,并直接使⽤这些代码完成任务8 * @author kdyzm9 *10*/11public class Method1 {12public static void main(String[] args) {13 MyWsServerService myWsServerService=new MyWsServerService();14 MyWsServer myWsServer=myWsServerService.getMyWsServerPort();15 String result=myWsServer.calculate(2);16 System.out.println(result);17 }18 } 客户端控制台打印结果:4 服务端控制台打印结果: 这种⽅式是使⽤最多的⽅式,也是最不容易出错、效率最⾼的⽅式,推荐使⽤这种⽅式。
Tomcat配置http请求自动转为https请求并解决80端口占用问题第一步.配置T omcat的https请求,我的这篇博客记录了一下相关操作:https:///LJX_ahut/article/details/82153895第二步修改默认端口由于http协议的默认端口是80(Tomcat默认配置是8080),https 协议的默认端口是443(Tomcat默认配置是8443),所以为了方便使用,修改端口号之后在访问是就不需要再输入端口号了1.<!--将默认的redirectPort = "8443" 改为443,port改为80 ,使用http访问时,将会重定向至443端口-->2.<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="443"/>3.4.<!--将默认端口port配置改为 443->5.<Connector SSLEnabled="true" clientAuth="false" connectionTimeout="20000" keystoreFile="E:/lujx/Refs/apache-tomcat-8.0.53/ssl/tomcat.keystore" keystorePass="123456" maxThreads="150" port="443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS"/>6.7.一键复制第三步·修改web.xml文件配置修改与server.xml的同级文件web.xml,在<web-app>标签下添加字标签(即与<welcome-file-list>同一级子标签),具体内如如下1.<security-constraint>2.<web-resource-collection>3.<web-resource-name>SSL</web-resource-name>4.<url-pattern>/*</url-pattern>5.</web-resource-collection>6.<user-data-constraint>7.<transport-guarantee>CONFIDENTIAL</transport-guarantee>8.</user-data-constraint>9.</security-constraint>一键复制可能遇到的问题:1.Tomcat 启动失败,错误信息是80端口被占用解决方法:a.首先排除多个tomcat容器使用同一个端口的错误,若是需要同时使用多个tomcat,则将每个tomcat配置不同的端口号b.其他非系统进程的端口占用,win+r组合键,键入cmd进入dos界面,输入命令 netstat -ano 查看系统进程信息,找到占用该端口的进程的pid,使用命令taskkill -f -pid 进程PID 杀掉进程后重启tomcat即可c.系统进程占用端口同样的dos命令,找到一个占用80端口的系统进程,但是在dos 界面中没有权限关闭该进程,如下图所示经过一番查询,得知,该进程服务名为World Wild Web Publishing Service ,出于谨慎的态度多方查阅资料,该进程除非电脑要作为一个站点的发布,否则可以关闭,并且设置属性为禁用,如图所示。
java 调用.net webservice的方法在Java和.NET之间进行交互通常涉及到两种不同编程语言和平台之间的通信。
其中,.NET Web服务是一种常用的跨平台通信方式。
在Java中调用.NET Web 服务,可以通过多种方式实现,包括使用HTTP客户端库、SOAP库和Web服务适配器等。
下面将介绍一种常见的方法,以帮助您在Java中调用.NET Web服务。
一、准备工作1.确保您的Java应用程序已经安装并配置好。
2.确保您的.NET Web服务已经发布并可用。
3.安装适当的Java HTTP客户端库或SOAP库,以便在Java中调用Web服务。
二、Java调用.NET Web服务的步骤1.创建HTTP客户端对象使用Java HTTP客户端库(如Apache HttpClient或Java的HttpURLConnection)创建一个HTTP客户端对象,用于与.NET Web服务进行通信。
```javaHttpClient httpClient = HttpClientBuilder.create().build();```2.构建SOAP请求消息使用适当的SOAP库(如JAX-WS或CXF)构建SOAP请求消息,并将其发送到.NET Web服务。
确保您的SOAP请求符合Web服务的文档描述。
```javaSOAPMessage soapRequest = MessageFactory.createMessage();soapRequest.getSOAPPart().writeTo(System.out);```3.发送SOAP请求使用HTTP客户端对象将SOAP请求消息发送到.NET Web服务。
您可以使用HttpClient对象的execute()方法执行HTTP请求。
```javaHttpResponse httpResponse = httpClient.execute(webServiceUrl, context);```4.接收SOAP响应消息从Web服务的响应中获取SOAP响应消息,并解析其内容。
Kettle WebService调用步骤一、概述Kettle是由Pentaho开发的一款开源的ETL工具,广泛应用于数据仓库的构建和数据集成等领域。
在实际工作中,经常会碰到需要调用Web服务的情况,而Kettle提供了方便的方式来实现这一功能。
本文将从简单到复杂,逐步介绍Kettle调用WebService的步骤,帮助读者全面理解并掌握该功能的使用方法。
二、前提条件在正式介绍Kettle调用WebService的步骤之前,我们需要先明确几个前提条件。
我们需要有一个可供调用的Web服务,例如一个基于SOAP协议的Web服务。
我们需要确保Kettle已经正确安装并配置好,可以正常运行。
我们需要确保已经对要调用的Web服务有一定的了解,包括Web服务的位置区域、参数格式等信息。
三、Kettle调用WebService的基本步骤1. 创建一个新的转换(Transformation)或作业(Job)在Kettle中,我们可以通过创建新的转换或作业来实现对WebService的调用。
在这里,我们以创建转换为例进行介绍。
2. 添加一个“调用WebService”步骤在转换中,我们需要添加一个“调用WebService”步骤,该步骤可以在“输入”类别下找到。
添加完成后,我们可以双击该步骤,进入编辑界面。
3. 配置WebService的基本信息在编辑界面中,我们需要填写WebService的基本信息,包括WebService的URL、Method(方法)、SOAPAction等。
这些信息通常可以从WebService的文档或提供方那里获取。
4. 配置输入字段点击“输入字段”选项卡,我们需要配置要传递给WebService的输入字段。
根据WebService的要求,我们需要按照顺序添加对应的字段,并且为每个字段指定相应的数值或参数。
这部分内容需要与具体的WebService接口文档相结合,进行逐一配置。
5. 配置输出字段(可选)如果WebService有返回结果,我们可以在“输出字段”选项卡中配置返回结果对应的字段,用于接收WebService的返回值。
java获取https⽹站证书,附带调⽤https:webservice接⼝⼀、java 获取https⽹站证书: 1、创建⼀个java⼯程,新建InstallCert类,将以下代码复制进去package com;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.security.KeyStore;import java.security.MessageDigest;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import .ssl.SSLContext;import .ssl.SSLException;import .ssl.SSLSocket;import .ssl.SSLSocketFactory;import .ssl.TrustManager;import .ssl.TrustManagerFactory;import .ssl.X509TrustManager;/*** 从⽹站获取java所需的证书,调⽤时传⼊域名。
*/public class InstallCert {public static void main(String[] args) throws Exception {String host;int port;char[] passphrase;if ((args.length == 1) || (args.length == 2)) {String[] c = args[0].split(":");host = c[0];port = (c.length == 1) ? 443 : Integer.parseInt(c[1]);String p = (args.length == 1) ? "changeit" : args[1];passphrase = p.toCharArray();} else {System.out.println("Usage: java InstallCert <host>[:port] [passphrase]");return;}File file = new File("jssecacerts");if (file.isFile() == false) {char SEP = File.separatorChar;File dir = new File(System.getProperty("java.home") + SEP+ "lib" + SEP + "security");file = new File(dir, "jssecacerts");if (file.isFile() == false) {file = new File(dir, "cacerts");}}System.out.println("Loading KeyStore " + file + "...");InputStream in = new FileInputStream(file);KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());ks.load(in, passphrase);in.close();SSLContext context = SSLContext.getInstance("TLS");TrustManagerFactory tmf =TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());tmf.init(ks);X509TrustManager defaultTrustManager = (X509TrustManager)tmf.getTrustManagers()[0];SavingTrustManager tm = new SavingTrustManager(defaultTrustManager);context.init(null, new TrustManager[] {tm}, null);SSLSocketFactory factory = context.getSocketFactory();System.out.println("Opening connection to " + host + ":" + port + "...");SSLSocket socket = (SSLSocket)factory.createSocket(host, port);socket.setSoTimeout(10000);try {System.out.println("Starting SSL handshake...");socket.startHandshake();socket.close();System.out.println();System.out.println("No errors, certificate is already trusted");} catch (SSLException e) {System.out.println();e.printStackTrace(System.out);}X509Certificate[] chain = tm.chain;if (chain == null) {System.out.println("Could not obtain server certificate chain");return;}BufferedReader reader =new BufferedReader(new InputStreamReader(System.in));System.out.println();System.out.println("Server sent " + chain.length + " certificate(s):");System.out.println();MessageDigest sha1 = MessageDigest.getInstance("SHA1");MessageDigest md5 = MessageDigest.getInstance("MD5");for (int i = 0; i < chain.length; i++) {X509Certificate cert = chain[i];System.out.println(" " + (i + 1) + " Subject " + cert.getSubjectDN());System.out.println(" Issuer " + cert.getIssuerDN());sha1.update(cert.getEncoded());System.out.println(" sha1 " + toHexString(sha1.digest()));md5.update(cert.getEncoded());System.out.println(" md5 " + toHexString(md5.digest()));System.out.println();}System.out.println("Enter certificate to add to trusted keystore or 'q' to quit: [1]");String line = reader.readLine().trim();int k;try {k = (line.length() == 0) ? 0 : Integer.parseInt(line) - 1;} catch (NumberFormatException e) {System.out.println("KeyStore not changed");return;}X509Certificate cert = chain[k];String alias = host + "-" + (k + 1);ks.setCertificateEntry(alias, cert);OutputStream out = new FileOutputStream("jssecacerts");ks.store(out, passphrase);out.close();System.out.println();System.out.println(cert);System.out.println();System.out.println("Added certificate to keystore 'jssecacerts' using alias '"+ alias + "'");}private static final char[] HEXDIGITS = "0123456789abcdef".toCharArray();private static String toHexString(byte[] bytes) {StringBuilder sb = new StringBuilder(bytes.length * 3);for (int b : bytes) {b &= 0xff;sb.append(HEXDIGITS[b >> 4]);sb.append(HEXDIGITS[b & 15]);sb.append(' ');}return sb.toString();}private static class SavingTrustManager implements X509TrustManager {private final X509TrustManager tm;private X509Certificate[] chain;SavingTrustManager(X509TrustManager tm) {this.tm = tm;}public X509Certificate[] getAcceptedIssuers() {throw new UnsupportedOperationException();}public void checkClientTrusted(X509Certificate[] chain, String authType)throws CertificateException {throw new UnsupportedOperationException();}public void checkServerTrusted(X509Certificate[] chain, String authType)throws CertificateException {this.chain = chain;tm.checkServerTrusted(chain, authType);}}}InstallCert.java2、eclipse 传⼊参数(需要获取证书的域名,例:)运⾏main⽅法:注:这⾥注意更改参数的类,不要弄错了。
java 调用webservice的各种方法总结现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!!由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和大家一起来研究研究webservice的各种使用方法。
一、利用jdk web服务api实现,这里使用基于SOAP message 的Web 服务1.首先建立一个Web services EndPoint:package Hello;import javax.jws.WebService;import javax.jws.WebMethod;import javax.xml.ws.Endpoint;@WebServicepublic class Hello {@WebMethodpublic String hello(String name) {return "Hello, " + name + "\n";}public static void main(String[] args) {// create and publish an endpointHello hello = new Hello();Endpoint endpoint = Endpoint.publish("http://localhost:8080/hello", hello);}}2.使用apt 编译Hello.java(例:apt -d [存放编译后的文件目录] Hello.java ) ,会生成jaws目录3.使用java Hello.Hello运行,然后将浏览器指向http://localhost:8080/hello?wsdl就会出现下列显示4.使用wsimport 生成客户端使用如下:wsimport -p . -keep http://localhost:8080/hello?wsdl这时,会在当前目录中生成如下文件:5.客户端程序:1class HelloClient{2public static void main(String args[]) {3 HelloService service = new HelloService();4 Hello helloProxy = service.getHelloPort();5 String hello = helloProxy.hello("你好");6 System.out.println(hello);7 }8}9以上方法还稍显繁琐,还有更加简单的方法二、使用xfire,我这里使用的是myeclipse集成的xfire进行测试的利用xfire开发WebService,可以有三种方法:1一种是从javabean 中生成;2 一种是从wsdl文件中生成;3 还有一种是自己建立webservice步骤如下:用myeclipse建立webservice工程,目录结构如下:首先建立webservice接口,代码如下:1package com.myeclipse.wsExample;2//Generated by MyEclipse34public interface IHelloWorldService {56 public String example(String message);78} 接着实现这个借口:1package com.myeclipse.wsExample; 2//Generated by MyEclipse34public class HelloWorldServiceImpl implements IHelloWorldService { 56 public String example(String message) {7 return message;8 }910} 修改service.xml 文件,加入以下代码:1<service>2 <name>HelloWorldService</name>3 <serviceClass>4 com.myeclipse.wsExample.IHelloWorldService5 </serviceClass>6 <implementationClass>7 com.myeclipse.wsExample.HelloWorldServiceImpl8 </implementationClass>9 <style>wrapped</style>10 <use>literal</use>11 <scope>application</scope>12 </service> 把整个项目部署到tomcat服务器中,打开浏览器,输入http://localhost:8989/HelloWorld/services/HelloWorldService?wsdl,可以看到如下:然后再展开HelloWorldService后面的wsdl可以看到:客户端实现如下:1package com.myeclipse.wsExample.client;23import .MalformedURLException;4import .URL;56import org.codehaus.xfire.XFireFactory;7import org.codehaus.xfire.client.Client;8import org.codehaus.xfire.client.XFireProxyFactory;9import org.codehaus.xfire.service.Service;10import org.codehaus.xfire.service.binding.ObjectServiceFactory;1112import com.myeclipse.wsExample.IHelloWorldService;1314public class HelloWorldClient {15public static void main(String[] args) throws MalformedURLException, Exception {16// TODO Auto-generated method stub17Service s=new ObjectServiceFactory().create(IHelloWorldService.class);18XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());19String url="http://localhost:8989/HelloWorld/services/HelloWorldService";2021 try22 {2324 IHelloWorldService hs=(IHelloWorldService) xf.create(s,url);25 String st=hs.example("zhangjin");26 System.out.print(st);27 }28 catch(Exception e)29 {30 e.printStackTrace();31 }32 }3334}35 这里再说点题外话,有时候我们知道一个wsdl地址,比如想用java客户端引用.net 做得webservice,使用myeclipse引用,但是却出现无法通过验证的错误,这时我们可以直接在类中引用,步骤如下:1public static void main(String[] args) throws MalformedURLException, Exception {2 // TODO Auto-generated method stub3 Service s=new ObjectServiceFactory().create(IHelloWorldService.class);4 XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire()); 567//远程调用.net开发的webservice8Client c=new Client(new URL("/webservices/qqOnlineWebService.asmx?wsdl"));9 Object[] o=c.invoke("qqCheckOnline", new String[]{"531086641","591284436"});1011//调用.net本机开发的webservice12Client c1=new Client(new URL("http://localhost/zj/Service.asmx?wsdl"));13Object[] o1=c1.invoke("HelloWorld",new String[]{});1415}三、使用axis1.4调用webservice方法前提条件:下载axis1.4包和tomcat服务器,并将axis文件夹复制到tomcat服务器的webapp文件夹中这里我就说一下最简单的方法:首先建立一个任意的java类(例如:HelloWorld.java),复制到axis文件夹下,将其扩展名改为jws,然后重新启动tomcat,在浏览器中输入http://localhost:8989/axis/HelloWorld.jws?wsdl,就会得到一个wsdl文件,其客户端调用方法如下:1import javax.xml.rpc.Service;2import javax.xml.rpc.ServiceException;3import javax.xml.rpc.ServiceFactory;45import .MalformedURLException;6import .URL;7import java.rmi.RemoteException;89import space.QName;1011public class TestHelloWorld {121314 public static void main(String[] args) throws MalformedURLException, ServiceException, RemoteException {15 // TODO Auto-generated method stub1617 String wsdlUrl ="http://localhost:8989/axis/HelloWorld.jws?wsdl";18 String nameSpaceUri ="http://localhost:8989/axis/HelloWorld.jws";19 String serviceName = "HelloWorldService";20 String portName = "HelloWorld";2122 ServiceFactory serviceFactory = ServiceFactory.newInstance();23 Service afService =serviceFactory.createService(new URL(wsdlUrl),new QName(nameSpaceUri, serviceName));24 HelloWorldInterface proxy = (HelloWorldInterface)afService.getPort(new QName(nameSpaceUri, portName),HelloWorldInterface.class);25 System.out.println("return value is "+proxy.getName("john") ) ;2627 }2829}30四、使用axis2开发webservice(这里首先感谢李宁老师)使用axis2 需要先下载axis2-1.4.1-bin.zipaxis2-1.4.1-war.zip/axis2/同理,也需要将axis2复制到webapp目录中在axis2中部署webservice有两种方法,第一种是pojo方式,这种方式比较简单,但是有一些限制,例如部署的类不能加上包名第二种方式是利用xml发布webservice,这种方法比较灵活,不需要限制类的声明下面分别说明使用方法:1.pojo方式:在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。
Webservice使用的协议及简述使用流程1. 协议介绍Webservice是一种能够进行跨平台、跨语言的通信方式,通过使用XML标准作为信息交换的格式,在互联网上实现不同系统之间的数据互操作。
在Webservice中,有多种协议可供选择,包括SOAP、REST等。
1.1 SOAP协议SOAP(Simple Object Access Protocol)是一种基于XML的通信协议,用于在网络之间传送结构化的信息。
它定义了一组规范,用于描述消息的结构、传递方式和处理过程。
SOAP协议一般基于HTTP传输,也可以使用其他协议。
1.2 REST协议REST(Representational State Transfer)是一种基于HTTP的通信协议,它利用不同的HTTP方法对资源进行操作(如GET、POST、PUT、DELETE),并使用URL作为资源的唯一标识。
REST协议使用的数据格式可以是XML、JSON等。
2. 使用流程下面是使用Webservice的一般流程,以调用一个Webservice提供的功能为例:2.1. 准备工作在使用Webservice之前,需要进行一些准备工作:•确定目标Webservice的URL或服务地址。
•根据目标Webservice的提供的文档,了解其接口、参数和返回值等信息。
2.2. 构建请求构建Webservice请求的方式取决于使用的协议。
以下介绍SOAP和REST协议下的请求构建方法。
2.2.1. SOAP协议请求在使用SOAP协议时,可以使用SOAP工具包来构建请求,如Java中的Apache CXF、JAX-WS等。
1.创建一个请求对象,并设置相应的参数。
2.使用SOAP工具包提供的方法将请求对象转换为符合SOAP格式的XML消息。
2.2.2. REST协议请求在使用REST协议时,可以使用HTTP请求来构建请求。
1.根据目标Webservice的接口文档,确定使用的HTTP方法(如GET、POST等)和URL。
Tomcat项目http升级为https的方法1.打开命令窗口 cd 进入jdk的安装目录如:cd C:\Program Files\Java\jdk1.7.0_80\bin在命令行中输入以下命令:keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "d:\tomcat.keystore" 注意:“名字与姓氏”要输入域名,如和真正运行的时候域名不符,会出问题这里我输入的密码是1234567, 域名是以tomcat为例。
非常重要的一点,你的姓名和姓氏要输入服务器的IP地址,否则浏览器连接就会出错。
(或者:keytool -genkey -alias tomcat -keyalg RSA -keystore F:\tomcat.keystore -validity 365参数简要说明:“F:\tomcat.keystore”含义是将证书文件保存在F盘,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,单位是天,默认值90)2.打开tomcat的conf/server.xml,去掉注释,修改如下<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"maxThreads="150" SSLEnabled="true" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS" keystoreFile="d:\tomcat.keystore"keystorePass="1234567" />3.打开conf/web.xml,在</welcome-file-list>后面加上:<!-- Authorization setting for SSL --><login-config><auth-method>CLIENT-CERT</auth-method><realm-name>Client Cert Users-only Area</realm-name></login-config><security-constraint><!-- Authorization setting for SSL --><web-resource-collection ><web-resource-name >SSL</web-resource-name><url-pattern>/*</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>4.重启tomcat服务,在服务器的IE浏览器中打开系统的服务地址,出现证书错误点击“安装证书”按钮,此时会弹出一个证书安装向导,单击“下一步”按钮继续,在进入“证书存储”这一步时,注意不要选择“根据证书类型,自动选择证书存储”,而是应该选择“将所有的证书放入下列存储”,然后单击后面的“浏览”按钮,手工指定存储路径为“受信任的根证书颁发机构”。
在Linux上调用Web服务的方法有很多种,其中一种常见的方法是使用SOAP(Simple Object Access Protocol)协议。
SOAP是一种基于XML的协议,用于在Web上交换结构化信息。
以下是在Linux 上调用SOAP Web服务的一般步骤:
1. 确定Web服务的WSDL(Web Services Description Language)文件。
WSDL是一种XML格式的文档,描述了Web服务的接口和操作。
您可以从Web服务的URL或文档中获取WSDL文件。
2. 使用工具生成客户端代码。
您可以使用许多不同的工具来生成客户端代码,包括Apache CXF、Axis2、gSOAP等。
这些工具可以根据WSDL文件生成用于与Web服务进行通信的客户端代码。
3. 构建SOAP请求。
您需要创建一个SOAP请求,其中包含要调用的Web服务的操作和相关参数。
SOAP请求是XML格式的文本,您可以使用XML编辑器或脚本来创建它。
4. 发送SOAP请求并接收响应。
您可以使用各种方式将SOAP 请求发送到Web服务,包括使用HTTP或HTTPS协议通过Web浏览器或使用编程语言提供的库函数。
一旦发送了SOAP请求,您将收到Web服务的响应,它也是XML格式的文本。
5. 处理响应。
一旦收到响应,您需要使用XML解析器将其解析为可读的数据格式,例如JSON或XML。
这些步骤是调用SOAP Web服务的一般过程,但具体实现可能因
使用的编程语言和工具而有所不同。
标题:使用postman调用webservice方法正文:一、介绍在软件开发领域,调用webservice方法是非常常见的操作。
而Postman是一款优秀的API测试工具,它可以方便地对webservice方法进行调用和测试。
本文将介绍如何在Postman中调用webservice方法,并且通过实例演示具体的操作步骤。
二、准备工作在开始之前,需要确保已安装了Postman软件,并且拥有一个可以访问的webservice接口。
通常,webservice接口会提供一个WSDL文件,其中包含了所有可调用的方法及其参数信息。
三、调用webservice方法1. 打开Postman软件,并点击“+”按钮新建一个请求。
2. 在新建请求的界面中,选择HTTP方法为“POST”,然后填入webservice的URL位置区域。
3. 在Headers中填入Content-Type为“application/soap+xml”,这是webservice通常使用的SOAP协议的内容类型。
4. 进入“Body”选项卡,在“raw”模式下填入SOAP格式的请求报文。
这个请求报文需要根据具体webservice方法的参数及格式来填写,通常可以在WSDL文件中找到对应的信息。
5. 点击发送按钮,即可向webservice发送请求,并获取返回结果。
四、实例演示假设我们有一个webservice接口,其中提供了一个名为“getWeather”的方法,用于获取指定城市的天气信息。
接下来,我们将通过Postman来调用这个方法,并获取返回的天气信息。
1. 根据WSDL文件找到“getWeather”方法的参数及格式信息,然后在Postman中设置请求的URL和报文内容。
2. 点击发送按钮,等待webservice返回结果。
3. 在返回结果中查看所获取的天气信息,确保调用成功并得到了正确的结果。
通过以上实例演示,可以清楚地了解在Postman中如何调用webservice方法,并且根据具体的webservice接口来设置请求参数和格式。
webserviceconfig参数webserviceconfig参数是指在使用Web服务时,用于配置和设置的一组参数。
Web服务是一种基于HTTP协议的远程调用技术,可以在不同的应用程序之间进行通信和数据交互。
webserviceconfig参数可以用于定义Web服务的行为和功能,以及设置一些安全性和性能方面的参数。
在使用Web服务时,利用webserviceconfig参数可以对Web服务进行配置和定制化。
这些参数可以在配置文件中进行设置,也可以通过代码进行动态设置。
下面将介绍一些常见的webserviceconfig参数及其功能:1. binding:绑定参数设置了与Web服务的通信细节相关的选项。
它可以定制化Web服务的通信方式,如传输协议、编码方式等。
通过设置不同的binding参数,可以选择使用SOAP(Simple Object Access Protocol)或REST(Representational State Transfer)等协议进行通信。
2. behavior:行为参数用于定义Web服务的行为和功能。
例如,可以设置如何处理错误、如何进行身份验证和授权等。
通过合理设置behavior 参数,可以提高Web服务的稳定性和安全性。
3. endpoint:终端参数用于指定Web服务的URL地址和端口号。
可以通过endpoint参数定义Web服务的访问路径,使客户端能够轻松地与Web服务进行通信。
4. security:安全性参数用于设置Web服务的安全策略。
可以通过security参数定义如何进行加密、数字签名、身份验证等安全性措施,以保护Web服务的数据和通信安全。
5. timeout:超时参数用于设置Web服务的最大响应时间。
通过设置timeout参数,可以控制客户端在等待Web服务响应时的最长时间。
这可以避免客户端长时间等待导致的性能问题。
6. serialization:序列化参数用于设置Web服务的数据格式和编码方式。
postman调用webservice调用的开发记事摘要:1.Postman 简介2.Webservice 简介3.Postman 调用Webservice 的过程4.Postman 调用Webservice 的注意事项5.总结正文:一、Postman 简介Postman 是一款帮助开发人员更轻松地测试和调试API 的API 测试和开发工具,它支持多种协议和数据格式,包括JSON、XML 等,适用于各种客户端和服务器的交互。
Postman 可以帮助开发人员快速构建和测试API,支持团队协作,便于调试和排查问题。
二、Webservice 简介Webservice 是一种通过网络提供服务的应用程序,它基于HTTP 协议,使用XML、JSON 等数据格式进行通信。
Webservice 可以分为两类:RESTful Webservice 和SOAP Webservice。
RESTful Webservice 采用REST(表述性状态转移)原则,简单易于理解和使用;SOAP Webservice 则采用XML 格式进行数据交换,较为复杂。
三、Postman 调用Webservice 的过程1.安装和配置Postman:首先需要下载并安装Postman,它可以在Windows、Mac 和Linux 等操作系统上运行。
安装完成后,需要创建一个新的Postman 账户,以便保存和管理API 测试和调试的记录。
2.创建一个新的请求:在Postman 中,可以创建不同类型的请求,如GET、POST、PUT、DELETE 等。
选择适当的请求类型后,需要输入Webservice 的URL 和请求参数(如果有)。
3.设置请求头:请求头是发送给服务器的元数据,包括请求方法、协议版本、用户代理等。
在Postman 中,可以自定义请求头,以满足Webservice 的要求。
4.设置请求体:请求体是请求中的数据部分,通常包含请求参数和附加的JSON 或XML 数据。
SpringBoot(七)———Tomcat、Jetty优化以及Https配置SpringBoot初始教程之Tomcat、Jetty优化以及Https配置(九)1.介绍在SpringBoot的Web项⽬中,默认采⽤的是内置Tomcat,当然也可以配置⽀持内置的jetty,内置有什么好处呢?1. ⽅便微服务部署。
2. ⽅便项⽬启动,不需要下载Tomcat或者Jetty在⽬前的公司已经把内置的Jetty部署到了线上项⽬中,⽬前来说并⽆太⼤问题,内置就算有⼀些性能损失,但是通过部署多台机器,其实也能够很轻松的解决这样的问题,内置容器之后其实是⽅便部署和迁移的。
1.1 优化策略针对⽬前的容器优化,⽬前来说没有太多地⽅,需要考虑如下⼏个点1. 线程数2. 超时时间3. jvm优化针对上述的优化点来说,⾸先线程数是⼀个重点,初始线程数和最⼤线程数,初始线程数保障启动的时候,如果有⼤量⽤户访问,能够很稳定的接受请求,⽽最⼤线程数量⽤来保证系统的稳定性,⽽超时时间⽤来保障连接数不容易被压垮,如果⼤批量的请求过来,延迟⽐较⾼,不容易把线程打满。
这种情况在⽣产中是⽐较常见的⼀旦⽹络不稳定,宁愿丢包也不愿意把机器压垮。
jvm优化⼀般来说没有太多场景,⽆⾮就是加⼤初始的堆,和最⼤限制堆,当然也不是⽆限增⼤,根据的情况进⾏调节2. 快速开始3.1 Tomcat SSLtomcat的SSL配置很简单,先通过JDK的⽅式⽣成.keystore,这种⽅式的证书⼀般来说不太被认可的,最好的⽅式去⽹上申请,阿⾥云和腾讯云都可以免费申请,这种⽅式配置出来的https,google浏览器会提⽰https不受认证keytool -genkey -alias tomcat -keyalg RSAapplication-tomcat.yaml这块对tomcat进⾏了⼀个优化配置,最⼤线程数是100,初始化线程是20,超时时间是5000msserver:tomcat:max-threads: 100min-spare-threads: 20connection-timeout: 5000ssl:key-store: classpath:.keystorekey-store-type: JKSkey-password: qq123456key-alias: tomcatport: 8443启动类启动类这块加上了⼀个httpConnector,为了⽀持https访问和http访问@SpringBootApplicationpublic class AppApplication {public static void main(String args[]) {SpringApplication.run(AppApplication.class, args);}@Beanpublic EmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() throws IOException {TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();tomcat.addAdditionalTomcatConnectors(httpConnector());return tomcat;}public Connector httpConnector() throws IOException {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");Http11NioProtocol http11NioProtocol = (Http11NioProtocol) connector.getProtocolHandler();connector.setPort(8080);//设置最⼤线程数http11NioProtocol.setMaxThreads(100);//设置初始线程数最⼩空闲线程数http11NioProtocol.setMinSpareThreads(20);//设置超时http11NioProtocol.setConnectionTimeout(5000);return connector;}}上述就完成了https的配置,如果启动成功可以发现tomcat启动时候监听了两个端⼝2016-11-21 10:53:15.247 INFO 42382 --- [ main] com.start.AppApplication : Starting AppApplication on elemebjdeMacBook-Pro.local with PID 42382 (/Users/wangkang/code/SpringBoot-Learn/springboot-9/target/classes started 2016-11-21 10:53:15.251 INFO 42382 --- [ main] com.start.AppApplication : No active profile set, falling back to default profiles: default2016-11-21 10:53:15.426 INFO 42382 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@489115ef: startup date [Mon No 2016-11-21 10:53:19.164 INFO 42382 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8443 (https) 8080 (http)2016-11-21 10:53:19.193 INFO 42382 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat2016-11-21 10:53:19.194 INFO 42382 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.3.2 jvm优化这块主要不是谈如何优化,jvm优化是⼀个需要场景化的,没有什么太多特定参数,⼀般来说在server端运⾏都会指定如下参数初始内存和最⼤内存基本会设置成⼀样的,具体⼤⼩根据场景设置,我们线上环境⼀般都是4G,因为机器是16G的,-server是⼀个必须要⽤的参数,⾄于收集器这些使⽤默认的就可以了,除⾮有特定需求java -Xms4g -Xmx4g -Xmn768m -server -jar springboot-9-1.4.1.RELEASE.jar4 jetty配置pom.xmlspringboot增加了⼀个starter针对jetty的,给pom增加⼀个依赖即可<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency>下⾯是针对jetty的线程优化,进⾏了⼀个配置,当然不配置也是可以使⽤的,在线上环境中最好配置⼀下,进⾏优化@Profile("jetty")@Beanpublic JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory(JettyServerCustomizer jettyServerCustomizer) {JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory();factory.addServerCustomizers(jettyServerCustomizer);return factory;}@Beanpublic JettyServerCustomizer jettyServerCustomizer() {return server -> {// Tweak the connection config used by Jetty to handle incoming HTTP// connectionsfinal QueuedThreadPool threadPool = server.getBean(QueuedThreadPool.class);threadPool.setMaxThreads(100);threadPool.setMinThreads(20);};}4.1 jetty https配置application-jetty.yamlhttps配置和tomcat的没有太多差别,这块是统⼀配置,SpringBoot做了⼀个抽象化⽽已server:connection-timeout: 5000ssl:key-store: classpath:.keystorekey-store-type: JKSkey-password: qq123456key-alias: tomcatport: 84443 总结⼀般来说在⽣产环境中不会⽤tomcat配置https,因为在我们的⽣产环境中,tomcat是⼀个统⼀的模板,只能够改线程数。
Tomat8配置HTTPS 一.环境:Jdk1.8Tomcat8.0.22二.步骤:1,创建证书:首先建立目录,例如:d:/keys然后利用jdk的keytool工具生成证书d:\keys>keytool -genkey -alias wsria -keyalg RSA -keystore d:/keys/wsriakey.keystore具体的输入项图片中都有说明,有一点我要解释一下;在输入完密码后提示输入域名是我输入的是,其实这个域名是不存在的,但是我为了演示所以虚拟了这个域名,技巧在于修改C:\Windows\System32\drivers\etc\hosts添加内容如下:127.0.0.1 这样在访问的时候其实是访问的127.0.0.1也就是本机严重提醒:提示输入域名的时候不能输入IP地址2,导出证书:d:\keys>keytool -export -file d:/keys/wsria.crt -alias wsria -keystored:/keys/wsriakey.keystore3,为客户端的JVM导入证书(目前没觉得这步有什么用)d:\keys>keytool -import -alias kk -keystore "D:\ProgramFiles\Java\jdk1.8.0_45\jre\lib\security\cacerts" -file D:/keys/wsria.crt此处输入的口令是:changeit4、应用证书到Web服务器-Tomcat打开tomcat目录的conf/server.xml文件,开启83和87行的注释代码,并设置keystoreFile、keystorePass修改结果如下:注意大小写<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150" SSLEnabled="true"scheme="https" secure="true"clientAuth="false" sslProtocol="TLS"keystoreFile="D:/keys/wsriakey.keystore"keystorePass="123456"/>到此Tomcat的SSL启用完成,现在你可以启动tomcat试一下了http://192.168.5.16:8443/---------------------------------------------------------------------------------------------------------------------- 以下是另一个方法,由于配置过程中出错,没有详细研究,不过觉得这个方法讲的比较详细,暂且在这里列出来,留作以后研究(webservice部分还是挺有用的)环境Jdk1.6 Tomcat6 jax-ws webservice1生成证书这里用到的文件,我们存放在D:/SSL/文件夹内,其中D:/SSL/server/内的文件是要交给服务器用的,D:/SSL/client/内的文件是要交给客户端用的。
1.1生成服务端证书开始-运行-CMD-在dos窗口执行下执行命令:keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:/SSL/server/tomcat.keystore-dname "CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" -validity 3650-storepass zljzlj -keypass zljzlj说明:keytool 是JDK提供的证书生成工具,所有参数的用法参见keytool –help-genkey 创建新证书-v 详细信息-alias tomcat 以”tomcat”作为该证书的别名。
这里可以根据需要修改-keyalg RSA 指定算法-keystore D:/SSL/server/tomcat.keystore 保存路径及文件名-dname "CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" 证书发行者身份,这里的CN要与发布后的访问域名一致。
但由于我们是自己发行的证书,如果在浏览器访问,仍然会有警告提示。
-validity 3650证书有效期,单位为天-storepass zljzlj 证书的存取密码-keypass zljzlj 证书的私钥注意:上面标红的部分“CN=127.0.0.1”,参照前面文档本人输入ip地址生成证书后,再用webservice 客户端调用的时候确实会报错,而且纠结了我一天1.2 生成客户端证书执行命令:keytool ‐genkey ‐v ‐alias client ‐keyalg RSA ‐storetype PKCS12 ‐keystoreD:/SSL/client/client.p12 ‐dname "CN=client,OU=zlj,O=zlj,L=bj,ST=bj,C=CN" ‐validity 3650 ‐storepass client ‐keypass client说明:参数说明同上。
这里的-dname 证书发行者身份可以和前面不同,到目前为止,这2个证书可以没有任何关系。
下面要做的工作才是建立2者之间的信任关系。
1.3 导出客户端证书执行命令:keytool ‐export ‐alias client ‐keystore D:/SSL/client/client.p12 ‐storetype PKCS12 ‐storepass client ‐rfc ‐file D:/SSL/client/client.cer说明:-export 执行导出-file 导出文件的文件路径1.4 把客户端证书加入服务端证书信任列表执行命令:keytool ‐import ‐alias client ‐v ‐file D:/SSL/client/client.cer ‐keystoreD:/SSL/server/tomcat.keystore ‐storepass zljzl说明:参数说明同前。
这里提供的密码是服务端证书的存取密码。
1.5 导出服务端证书执行命令:keytool -export -alias tomcat -keystore D:/SSL/server/tomcat.keystore -storepass zljzlj -rfc -file D:/SSL/server/tomcat.cer说明:把服务端证书导出。
这里提供的密码也是服务端证书的密码。
1.6 生成客户端信任列表执行命令:keytool -import -file D:/SSL/server/tomcat.cer -storepass zljzlj -keystoreD:/SSL/client/client.truststore -alias tomcat –noprompt说明:让客户端信任服务端证书2. 配置服务端为只允许HTTPS连接2.1 配置Tomcat 目录下的/conf/server.xmlXml代码收藏代码<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"maxThreads="150" scheme="https" secure="true" clientAuth="true"sslProtocol="TLS" keystoreFile="D:/SSL/server/tomcat.keystore"keystorePass="zljzlj" truststoreFile="D:/SSL/server/tomcat.keystore"truststorePass="zljzlj" />说明:在server.xml里面这段内容本来是被注释掉的,如果想使用https的默认端口443,请修改这里的port参数。
其中的clientAuth="true" 指定了双向证书认证。
2.2 配置服务端项目web.xml在<welcome-file-list>之后增加:Xml代码收藏代码<!-- 强制SSL配置,即普通的请求也会重定向为SSL请求--><security-constraint><web-resource-collection><web-resource-name>SSL</web-resource-name><url-pattern>/service/*</url-pattern><!-- 全站使用SSL<url-pattern>/*</url-pattern>--></web-resource-collection><user-data-constraint><description>SSL required</description><!-- CONFIDENTIAL: 要保证服务器和客户端之间传输的数据不能够被修改,且不能被第三方查看到--><!-- INTEGRAL: 要保证服务器和client之间传输的数据不能够被修改--><!-- NONE: 指示容器必须能够在任一的连接上提供数据。
(即用HTTP 或HTTPS,由客户端来决定)--><transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint></security-constraint>说明:这里限制了WEB service服务地址的访问必须为https连接。