axis webservice tomcat 服务发布总结之相关流程和问题汇总
来源:互联网 发布:淘宝云客服报名入口 编辑:程序博客网 时间:2024/06/05 08:08
软件及版本:os:win7 64bit 16G内存IDE:intellij IDEA 2016.2.2 64 bit数据库:Mysql 5.6.20 Navicat Premium11.0.17相关软件:tomcat9.0.0 axis-bin-1_4
服务发布流程:
1 .IDEA: File → New → Project → Java → Java EE → Web Application → WebServices → “Generate sample server code ” 选中,Version”Apache Axis”,(连网可以选择download)Libraries”Use library” 选择 Axis/lib所在目录中的 axis.jar – wsdl4j-1.5.1.jar 共七个jar包。(src -sample – HelloWorld.java 以及 server-config.wsdd 中service 唯一标识了所需要发布的服务,添加一个服务在该文件中依照相关格式填写基本配置信息即可)
2.Run → “Defaults”右边“+”号 → Tomcat Server → Local → Name ”Proj_Name”(Application Server 为选择的tomcat,JRE为所安装的Default) → 红色“Fix “点击(Deployment 栏 添加一个war包) → Apply → ok
3.File → Project Structure → Artifacts → Fix(Add’Jax-WS’) → Apply → ok
4.发布成功:右上角栏目 选择 Tomcat猫:(Proj_Name) 点击 绿三角 运行,发布成功自动启动浏览器-localhost:8080 页面内容为
<service name=”ServiceName” provider=”java:RPC”> <parameter name=”allowedMethods” value=”*”/> (发布当前类所有方法)<parameter name=”className“ value=”example.HelloWorld”>(发布当前路径所指定的类)<namespace>http://java/example/</namespace>(指定命名空间 根据类路径)</service>
添加Maven (maven有坑,请慎重)
1. Proj_Name 右键 Add Frameworks Support → Maven → pom.xml 添加相应的Jar包 百度 maven repository 查找具体版本设置。
2.写好一个类进行测试运行时 出现以下问题,为maven的坑:
“warning java 源值 1.5 已过时,将在未来所有发行版中删除”
解决方案:
project Structure -Modules - Language Levels - Project default(自己实践的)
修改后IDEA将在源码jdk版本、目标jdk版本使用Maven中配置的jdk版本。
出现“找不到符号”之类问题:
解决方案: Build → Rebuild Project 编译成功!!!
在maven中写完相关类文件后,发布至tomcat上,需要将用maven下载的jar包,
添加至 out – artifacts – Proj_Name_war_exploded – WEB-INF – lib 下,如连接数据库的jar包,添加至lib下,否则在发布成功服务,客户端调用时会抛出 javaNULLPOINTERException,如果服务器端写了classNotFoundException异常检测,
则抛出ClassNotFoundException,如果所写的服务类 其中包含多个同名的方法和参数,请注意修改保证不重复,否则调用时会抛出no operation exception。
写完项目发布时,将Proj_Name_war_exploded (out/……/Proj_Name_war_exploded)放在服务器 tomcat文件夹下(需要提前安装匹配的jdk版本和系统管理员身份安装,版本不一致 报tomcat 非 微软服务,参考特定代码4,)的webapps下,然后更改为 Proj_Name。重新启动(mstsc.msc) APache tomcat,在浏览器输入:
服务器ip:8080(默认端口)/ Proj_Name/services 即可查看当前所发布的服务。
客户端调用服务时,需要相关的axis的jar包,但不需要sql连接之类的jar包。
首先根据服务的wsdl的url生成客户端代码,方便在客户端远程调用服务。
在客户端项目的src目录下 右键 webservices - Generate Java Code From wsdl
生成一下四个文件:
ExportDT –发布的服务映射
ExportDTService –发布的服务
ExportDTServiceLocator –服务的基本配置
ExportDTSoapBindingStub -封装了调用服务器端相关方法的方法(Call RPC)
然后 新建test 类调用相关服务:
// The service locator gets instances of the web service. ExportDTServiceLocator serviceLocator = new ExportDTServiceLocator(); // get an instance of client stub by casting from interface: ExportDTSoapBindingStub exportDT = (ExportDTSoapBindingStub) serviceLocator.getExportDT(); // examine the value we got back: String str = exportDT.getProjACD2XMLStringYesrterDay();
在进行服务调用时,请注意,传两个参数时,第二个参数无法从客户端传送至服务器端(参数为null),报nullPointerException 异常,同时返回值不能为定义的对象,必须是基本类型,如String/int等。(这是问题,不知为何!CXF可以直接传送对象,调用时先将对象转换为XML,客户端再将XML解析为对象)
**心得体会:测试时 可以选择服务器端为debugger 模式 客户端一起测试。
代码是调试出来的!!!**
- axis webservice tomcat 服务发布总结之相关流程和问题汇总
- 使用myEclipse,tomcat 和Axis发布webService
- 使用myEclipse,tomcat 和Axis发布webService
- 使用myEclipse,tomcat 和Axis发布webService
- axis发布webservice的服务
- Axis + Tomcat + Eclipse 发布 WebService
- 【转载】使用myEclipse,tomcat 和Axis发布webService
- 发布Axis的webservice服务 调用webservice服务
- 1.WebService之AXIS即时发布
- 2.WebService之AXIS定制发布
- WebService:发布服务到Tomcat
- AXIS2发布WebService服务示例(Eclipse+AXIS)
- AXIS发布WebService
- axis发布webservice
- Axis WebService服务端发布
- axis发布webservice
- 发布webservice--axis
- axis发布webservice记录
- linux的哲学思想
- Expected one result (or null) to be returned by selectOne(), but found: 2问题完美解决
- 开枪效果的制作
- 数据结构实验之链表三:链表的逆置
- 4.Android模拟器上,滑动出现C问题解决
- axis webservice tomcat 服务发布总结之相关流程和问题汇总
- 【Leetcode】22.Generate Parentheses【DFS】
- $.fn.extend(); 和 $.extend();
- Spring获取properties文件中的属性
- 在Drupal中使用Restful之一
- 4-1 复数类的运算符重载
- HTTP方法--Put 还是 Patch?
- poj 1562 Oil Deposits
- iOS动画详解