tomcat8配置HTTPS,简单webservice客户端调用

合集下载

soap调用webservice 405

soap调用webservice 405

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接口请求方法

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部署java原生webservice

Tomcat部署java原生webservice

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 调用webservice示例

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 服务的方法并输出结果。

tomcat配置手册

tomcat配置手册

以下部署方式都是针对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。。。

【JavaEE学习80下】【调用WebService服务的四种方式】【WebService。。。

【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端口占用问题

Tomcat配置http请求自动转为https请求并解决80端口占用问题

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 webservice的方法

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响应消息,并解析其内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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连接。

相关文档
最新文档