以下代码是我简单配置能运行成功的;
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/[email protected]: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>
服务 客户端 所有环境配置已经写完 其实也不难 其他都是你自己在里面加逻辑了