浏览 2494 次
锁定老帖子 主题:使用axis 实现 Webservice
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-26
最后修改:2011-05-26
以下代码是我简单配置能运行成功的; tomcat6 jdk1.5 例子 java调用java中的webservice 下次发布文章 .net调用java webservice , java调用.net webservice web.xml 配置axis <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 服务端代码 package com.servers; import java.sql.ResultSet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.jdbc.BaseDAO; /** * @author zhoualine * */ public class Demo { private static Log log = LogFactory.getLog(Demo.class); public String isflag(int i) { BaseDAO bs=new BaseDAO(); try{ // bs.setConType("oracle"); // bs.setUrl("jdbc:oracle:thin:username/password@127.0.0.1:1521:sid"); // ResultSet res=bs.exeQuery("select * from pb_test ts where ts.sbid="+i); // if(res.next()){ // return res.getString(2); // }else{ // return null; // } if(i==123) return "my si webservice"; return "hello"; }catch(Exception ce){ log.error(""+ce.getMessage()); return "error"; // throw new Exception(""+ce.getMessage()); } } // public static void main(String[] args) { // Demo dm=new Demo(); // try { // System.out.print(dm.isflag(1)); // } catch (Exception e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } } 客户端调用代码 package com.client; import org.apache.axis.client.Call; import org.apache.axis.client.Service; public class test { public static void main(String[] args) { try { // 指出service所在URL 自己测试看有没有 String endpoint = "http://127.0.0.1:8082/mywebservice/services/Demo.jws"; // 创建一个服务(service)调用(call) Service service = new Service(); Call call = (Call) service.createCall();// 通过service创建call对象 // 设置service所在URL call.setTargetEndpointAddress(new java.net.URL(endpoint)); // 方法名(processService)与MyService.java方法名保持一致 call.setOperationName("isflag"); // Object 数组封装了参数,参数为"This is Test!",调用processService(String arg) String ret = (String) call.invoke(new Object[] { 123 }); System.out.print(ret); } catch (Exception ce) { ce.printStackTrace(); } } } webserivce 描述文件server-config.wsdd <?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <globalConfiguration> <parameter name="sendMultiRefs" value="true" /> <parameter name="disablePrettyXML" value="true" /> <parameter name="dotNetSoapEncFix" value="true" /> <parameter name="enableNamespacePrefixOptimization" value="false" /> <parameter name="sendXMLDeclaration" value="true" /> <parameter name="sendXsiTypes" value="true" /> <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl" /> </globalConfiguration> <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper" /> <service name="Demo.jws" provider="java:RPC"> <!-- 这里是你要修改 的类结构 --> <parameter name="className" value="com.servers.Demo" /> <parameter name="scope" value="request" /> <!-- * 代表所有方法可调用 --> <parameter name="allowedMethods" value="*" /> <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" /> </service> <transport name="http"> <requestFlow> <handler type="URLMapper" /> </requestFlow> </transport> </deployment> 服务 客户端 所有环境配置已经写完 其实也不难 其他都是你自己在里面加逻辑了 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-02-27
用axis2 其实很简单 我觉得LZ搞的有点复杂了 也不是复杂 就是有点乱 没有章法
|
|
返回顶楼 | |
发表时间:2012-02-27
只要不是先写wsdl后出java代码的web services开发方式,基本就那么机械的几步
|
|
返回顶楼 | |
发表时间:2012-02-27
freish 写道 只要不是先写wsdl后出java代码的web services开发方式,基本就那么机械的几步
我还是更喜欢http://www.iteye.com/topic/417433这篇文章的方式 而且一直在用 可能对于初学者来说是简单易懂吧 |
|
返回顶楼 | |