Axis2发布服务,支持Tomcat和Weblogic的SSHWeb项目部署
先说下遇到的问题,在SSHWeb项目中使用JDK自带的jar发布WebService(Endpoint.publish),在tomcat下可以正常发布,但是在Weblogic报奇葩错误,如Struts2-core.xml解析出错,还有weblogic实例重名错误等;用了一天网上也找不到解决方案,就改为Axis2发布WebService,发现也会出问题,但是可以在网上找到解决办法
一、非Maven的Axis2方式
1、官网下载Axis2的war包,解压后将conf、lib、modules拷贝到Web项目webapp的WEB-INF下,然后再新建services文件-》webservices-》META-INF文件夹,META-INF下创建services.xml文件;将解压的axis2文件夹下axis2-web拷贝到webapp下,访问该站点可以看到发布的服务,结果如下右图
2、services.xml配置文件内容如下
<?xml version="1.0" encoding="UTF-8" ?>
<service name="tongweiws">
<description>
publish webservice
</description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
</messageReceivers>
<!--不使用Spring注解-->
<!--<parameter name="ServiceClass">com.epoch.planning.projects.tongwei.SyncUser</parameter>--> <!--使用Spring注解,@Component注解的类,beanName如果不指定,默认是类名首字母小写-->
<parameter name="SpringBeanName">syncUser</parameter>
<parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter>
</service>
3、weblogic.xml配置文件内容如下
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://www.bea.com/ns/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
<wls:weblogic-version>10.3.0</wls:weblogic-version>
<wls:context-root>E7-Planning</wls:context-root>
<wls:container-descriptor>
<wls:servlet-reload-check-secs>-1</wls:servlet-reload-check-secs>
<wls:resource-reload-check-secs>-1</wls:resource-reload-check-secs>
<wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
</wls:container-descriptor>
<wls:session-descriptor>
<wls:cookie-name>JSESSIONID1</wls:cookie-name>
<wls:encode-session-id-in-query-params>true</wls:encode-session-id-in-query-params>
</wls:session-descriptor>
</wls:weblogic-web-app>
weblogic.xml
4、web.xml相关配置如下
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<!--下面配置是支持Axis2在Weblogic可发布服务,value指的是域下对应Web项目包WEB-INF下,其实就是找到拷贝过去的那三个文件夹-->
<init-param>
<param-name>axis2.repository.path</param-name>
<param-value>D:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_user\E7-Planning_war\j3vqe1\war\WEB-INF</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
5、services.xml中配置的对应类,使用spring就是@Component注解的类,不使用就是普通类
6、Struts2会拦截请求,报错,在struts.xml配置相关如下
<constant name="struts.action.excludePattern" value="/services.*"/>
7、访问http://localhost:8081/services/tongweiws?wsdl tongweiws为service的name属性
8、客户端使用HttpURLConnection方式请求服务时,客户端报错如下
然后在AxisServlet的dopost方法处断点,查看此处的异常如下
The endpoint reference (EPR) for the Operation not found is http://192.168.0.97:8081/services/tongweiws and the WSA Action = null. If this EPR was previously reachable, please contact the server administrator.
说明客户端需要设置action,如下
connection.setRequestProperty("SOAPAction","urn:test");
二、maven的Axis2
<properties>
<axis2.version>1.7.6</axis2.version>
</properties>
<!--Axis2-->
<!--<dependency>-->
<!--<groupId>org.apache.axis2</groupId>-->
<!--<artifactId>axis2</artifactId>-->
<!--<version>${axis2.version}</version>-->
<!--</dependency>-->
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-spring</artifactId>
<version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
<version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-xmlbeans</artifactId>
<version>${axis2.version}</version>
</dependency>
Axis2发布服务,支持Tomcat和Weblogic的SSHWeb项目部署的更多相关文章
- 微信小程序访问webservice(wsdl)+ axis2发布服务端(Java)
0.主要思路:使用axis2发布webservice服务端,微信小程序作为客户端访问.步骤如下: 1.服务端: 首先微信小程序仅支持访问https的url,且必须是已备案域名.因此前期的服务器端工作需 ...
- tomcat的基本使用及项目部署
tomcat介绍 我们在学习Javaweb的时候,最普遍使用的服务器j就是阿帕奇的tomcat,主要是用来处理jsp和servlet的请求以及响应 tomcat的启动和关闭 在我们安装完tomcat后 ...
- tomcat 用AXIS2发布WebService 网站的方法
Axis2+tomcat7.0 实现webService 服务端发布与客户端的调用. Aixs2开发webService的方法有很多,在此只介绍一种比较简单的实现方法. 第一步:首先要下载开发所需要的 ...
- tomcat和weblogic发布时,jar包内资源文件的读取路径问题
问题场景: 本地使用的是tomcat作为发布容器,应用启动后一切正常: 发布测试环境服务器使用weblogic作为发布容器,发布后File类读取文件无法找到文件(路径错误). 问题原因: tomcat ...
- 如何对应用服务性能问题诊断(Tomcat、Weblogic中间件)
在我们web项目中,我们常见的web应用服务器有Tomcat.Weblogic.WebSphere.它们是互联网应用系统的基础架构软件,也叫“中间件”,负责处理动态在页面请求,并为应用提供了名字.事务 ...
- tomcat、weblogic、jboss的区别,容器的作用
一.tomcat Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,它是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心 ...
- Tomcat、Weblogic、JBoss、GlassFish、Resin、Websphere弱口令及拿webshell方法总结 [复制链接]
1.java应用服务器 Java应用服务器主要为应用程序提供运行环境,为组件提供服务.Java 的应用服务器很多,从功能上分为两类:JSP 服务器和 Java EE 服务器.1.1 常见的Se ...
- WebService学习之旅(七)Axis2发布WebService的几种方式
前面几篇文章中简单的介绍了如何使用Axis2发布WebService及如何使用Axis2实现Web服务的客户端调用,本节將详细介绍Axis2发布WebService的几种方式. 一.使用aar包方式发 ...
- Java借助axis2发布WebService
Webservice: 1.Xml: 2.WSDL: Web service描述语言(WSDL)就是这样一个基于XML(标准通用标记语言下的一个子集)的语言,用于描述Web service及其函数.参 ...
随机推荐
- shell中调用R语言并传入参数的两种步骤
shell中调用R语言并传入参数的两种方法 第一种: Rscript myscript.R R脚本的输出 第二种: R CMD BATCH myscript.R # Check the output ...
- mock数据和代码生成
git clone https://gitee.com/fleam/CodeGeneration.git
- MAC配置Xcode的Cocos2d-x环境
Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00003988 1.Mac配置环境变量,即编辑命令: o ...
- Kali配置网卡静态信息
临时配置ip ifconfig eth0 up //端口启用 ifconfig eth0 down //端口关闭 ifconfig eth0 192.168.1.10 //只修改ip地址 ifconf ...
- 大型网站的SEO引爆点
网站越大,SEO服务做起来就轻松,因为大型网站都有很好的执行团队,你只需要找准他们网站的SEO爆破点,就能够迅速获得非常理想的SEO效果.本文将结合我最近两年的几个经典案例:腾讯拍拍.金山爱词霸.中青 ...
- 【Python】python3-list列表引用
print(names) #列出列表的内容 print(names[3]) #访问列表中第4个值 print(names[1:3]) #访问列表中从第2个到第3个的值 print(names[-1]) ...
- 第三百六十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能
第三百六十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能 Django实现搜索功能 1.在Django配置搜索结果页的路由映 ...
- 利用smba实现windows上写程序,linux上运行
1.在linux下载程序代码(确保获取正确的文件属性) 2.在windows编写代码,对于已有代码,不改变文件权限,如原先为755的,更改文件内容后依然是755的文件,如果要新建文件,默认为644,其 ...
- Spring Boot Controller相应JSP页面 错误whitelabel error page
在学习SpringBoot显示JSP页面的时候出现了错误,Controller可以正常调用,但是JSP页面就是不能正常显示. whitelabel error page 解决:注释掉scope < ...
- (转)使用FFMPEG类库分离出多媒体文件中的H.264码流
出自:http://blog.csdn.net/leixiaohua1020/article/details/11800877 在使用FFMPEG的类库进行编程的过程中,可以直接输出解复用之后的的 ...