Chinaunix首页 | 论坛 | 博客
  • 博客访问: 392136
  • 博文数量: 80
  • 博客积分: 2682
  • 博客等级: 少校
  • 技术积分: 907
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-16 09:55
文章分类

全部博文(80)

文章存档

2012年(80)

分类: 系统运维

2012-10-25 13:05:48

参考文档 
http://www.cnblogs.com/hoojo/archive/2010/12/20/1911349.html

http://www.ibm.com/developerworks/cn/webservices/ws-axisfaq/index.html

http://mljavalife.iteye.com/blog/1182063


下载 axis-1.2.zip 文件并解压。设置axis的环境变量 "AXIS_HOME"


服务端


根据给定wsdl 生成axis1服务端命令
  1. java -Djava.ext.dirs=%AXIS_HOME%\lib org.apache.axis.wsdl.WSDL2Java <wsdl地址> -o <%Output_Path%> -d Session -s -S true -p <%Package%>



将java的方法,用axis1.4的命令生成WSDL文件命令java2wsdl.bat

  1. set Axis_Lib=E:\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib
  2. set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
  3. %Java_Cmd% org.apache.axis.wsdl.Java2WSDL -o HelloImpl.wsdl -l "" -n "urn:HelloImpl" -p"axis.wsdd" "urn:HelloImpl444444" axis.wsdd.HelloImpl
  4. pause;


web.xml 加入如下代码

点击(此处)折叠或打开

  1.   <servlet>
  2.     <servlet-name>AxisServlet</servlet-name>
  3.     <display-name>Apache-Axis Servlet</display-name>
  4.     <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  5.   </servlet>
  6.   <servlet>
  7.     <servlet-name>AdminServlet</servlet-name>
  8.     <display-name>Axis Admin Servlet</display-name>
  9.     <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
  10.     <load-on-startup>100</load-on-startup>
  11.   </servlet>
  12.   <servlet-mapping>
  13.     <servlet-name>AxisServlet</servlet-name>
  14.     <url-pattern>/servlet/AxisServlet</url-pattern>
  15.   </servlet-mapping>
  16.   <servlet-mapping>
  17.     <servlet-name>AxisServlet</servlet-name>
  18.     <url-pattern>*.jws</url-pattern>
  19.   </servlet-mapping>
  20.   <servlet-mapping>
  21.     <servlet-name>AxisServlet</servlet-name>
  22.     <url-pattern>/services/*</url-pattern>
  23.   </servlet-mapping>
  24.   <servlet-mapping>
  25.     <servlet-name>AdminServlet</servlet-name>
  26.     <url-pattern>/servlet/AdminServlet</url-pattern>
  27.   </servlet-mapping>



WebService部署需要服务器上先启动WEB应用

利用deploy.wsdd 自动部属生成 server-config.wsdd  配置文件 命令
  1. java -Djava.ext.dirs=%AXIS_HOME%\lib org.apache.axis.client.AdminClient deploy.wsdd -l services/AdminService 
把服务器上生成的 server-config.wsdd  拷贝下来


最后WEB工程(axis1服务端) 目录结构如下:
  1. WebContent
  2.    |-- WEB-INF
  3.    |-- classes
  4.    |-- lib                   添加 axis1 的jar包
  5.    |-- server-config.wsdd    描述文件 利用deploy.wsdd生成
  6.    |-- web.xml



监听WebService命令
  1. java -Djava.ext.dirs=%AXIS_HOME%\lib org.apache.axis.utils.tcpmon


axis1.4生成客户端命令
  1. java -Djava.ext.dirs=%AXIS_HOME%\lib org.apache.axis.wsdl.WSDL2Java -o <%Output_Path%> -p <%Package%>

客户端调用示例

  1. /**
  2.    * axis1 方式 webservice 客户端
  3.    * BusinessService SoapBindingStub 引用时,必须判断null,为null表示Webservice获取失败
  4.    *
  5.    * @return
  6.    */
  7.   public BusinessService getBusinessService() {
  8.     if (businessService == null) {
  9.       String wsdlUrl = "Business/BusinessService?wsdl";
  10.       BusinessServiceServiceLocator locator = new BusinessServiceServiceLocator();
  11.       try {
  12.         businessService = locator.getBusinessService(new java.net.URL(wsdlUrl));
  13.       } catch (MalformedURLException e) {
  14.         e.printStackTrace();
  15.       } catch (ServiceException e) {
  16.         e.printStackTrace();
  17.       }
  18.     }
  19.     return businessService;
  20.   }



问题总结:

运行的时候,有 警告,错误 如下:
org.apache.axis.utils.JavaUtils isAttachmentSupported
- Unable to find required classes (javax.activation.DataHandler and javax.mail.i
nternet.MimeMultipart). Attachment support is disabled.


解决办法:
  将“activation.jar”和“mail.jar”包拷贝到lib。
阅读(2938) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~