﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-codefans-文章分类-web service</title><link>http://www.blogjava.net/codefans/category/7852.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 07:55:26 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 07:55:26 GMT</pubDate><ttl>60</ttl><item><title>Ajax入门实例 </title><link>http://www.blogjava.net/codefans/articles/32378.html</link><dc:creator>春雷的博客</dc:creator><author>春雷的博客</author><pubDate>Sat, 25 Feb 2006 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/codefans/articles/32378.html</guid><wfw:comment>http://www.blogjava.net/codefans/comments/32378.html</wfw:comment><comments>http://www.blogjava.net/codefans/articles/32378.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/codefans/comments/commentRss/32378.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/codefans/services/trackbacks/32378.html</trackback:ping><description><![CDATA[安装jdk1.4和tomcat5.0.28，IE5.5获FireFox。进入正题<BR><BR>[1]写index.jsp文件<BR><BR>&lt;%@ page contentType="text/html;charset=gb2312"%&gt;<BR><BR>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<BR><BR>&lt;html&gt;<BR><BR>&nbsp; &lt;head&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;title&gt;My JSP 'index.jsp' starting page&lt;/title&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="pragma" content="no-cache"&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="cache-control" content="no-cache"&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="expires" content="0"&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="description" content="This is my page"&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;link rel="stylesheet" type="text/css" href="styles.css"&gt;<BR><BR>&nbsp; &lt;/head&gt;<BR><BR>&nbsp;<BR><BR>&nbsp; &lt;body&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;script type="text/javascript"&gt;<BR><BR>&nbsp;&nbsp;&nbsp; var req;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; function validate() {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var idField = document.getElementById("userid");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var url = "servlet/ValidateServlet?id=" + escape(idField.value);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (window.XMLHttpRequest) {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("0");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req = new XMLHttpRequest();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else if (window.ActiveXObject) {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("1");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req = new ActiveXObject("Microsoft.XMLHTTP");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(req){<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req.open("GET", url, true);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req.onreadystatechange = callback;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; req.send(null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR><BR>&nbsp;&nbsp;&nbsp; }<BR><BR>function callback() {<BR><BR>&nbsp;&nbsp;&nbsp; if (req.readyState == 4) {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (req.status == 200) {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parseMessage();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // update the HTML DOM based on whether or not message is valid<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert ("Not able to retrieve description" + req.statusText);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR><BR>&nbsp;&nbsp;&nbsp; }<BR><BR>}<BR><BR>function parseMessage() {<BR><BR>&nbsp;&nbsp;&nbsp; var message = req.responseXML.getElementsByTagName("message")[0];<BR><BR>&nbsp;&nbsp;&nbsp; var name = req.responseXML.getElementsByTagName("name")[0];<BR><BR>&nbsp;&nbsp;&nbsp; setMessage(message.firstChild.data,name.firstChild.data);<BR><BR>}<BR><BR>&nbsp;function setMessage(message,name) {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; var userMessageElement = document.getElementById("userIdMessage");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; userMessageElement.innerHTML = "&lt;font color=\"red\"&gt;" + message + " you "+name+"&lt;/font&gt;";<BR><BR>&nbsp;}<BR><BR>&lt;/script&gt;<BR><BR>&lt;div id="userIdMessage"&gt;&lt;/div&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;input type="text"<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size="20" <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="userid"<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="id"<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onkeyup="validate();"&gt;<BR><BR>&nbsp; &lt;/body&gt;<BR><BR>&lt;/html&gt;<BR><BR>[2] 写servlet/ValidateServlet.java类<BR><BR>/*<BR><BR>&nbsp;* 创建日期 2005-8-3<BR><BR>&nbsp;*<BR><BR>&nbsp;* TODO 要更改此生成的文件的模板，请转至<BR><BR>&nbsp;* 窗口 － 首选项 － Java － 代码样式 － 代码模板<BR><BR>&nbsp;*/<BR><BR>package com;//com包需要自己创建.<BR><BR>&nbsp;<BR><BR>import java.io.IOException;<BR><BR>import java.io.PrintWriter;<BR><BR>import java.util.HashMap;<BR><BR>&nbsp;<BR><BR>import javax.servlet.ServletConfig;<BR><BR>import javax.servlet.ServletContext;<BR><BR>import javax.servlet.ServletException;<BR><BR>import javax.servlet.http.HttpServlet;<BR><BR>import javax.servlet.http.HttpServletRequest;<BR><BR>import javax.servlet.http.HttpServletResponse;<BR><BR>&nbsp;<BR><BR>/**<BR><BR>&nbsp;* @author Administrator<BR><BR>&nbsp;*<BR><BR>&nbsp;* TODO 要更改此生成的类型注释的模板，请转至<BR><BR>&nbsp;* 窗口 － 首选项 － Java － 代码样式 － 代码模板<BR><BR>&nbsp;*/<BR><BR>public class ValidateServlet extends HttpServlet {<BR><BR>&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp; /**<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; * Constructor of the object.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; */<BR><BR>&nbsp;&nbsp; <BR><BR>&nbsp;&nbsp;&nbsp; private ServletContext context;<BR><BR>&nbsp;&nbsp;&nbsp; private HashMap users = new HashMap();<BR><BR>&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp; public ValidateServlet() {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super();<BR><BR>&nbsp;&nbsp;&nbsp; }<BR><BR>&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp; /**<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; * Destruction of the servlet. &lt;br&gt;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; */<BR><BR>&nbsp;&nbsp;&nbsp; public void destroy() {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super.destroy(); // Just puts "destroy" string in log<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Put your code here<BR><BR>&nbsp;&nbsp;&nbsp; }<BR><BR>&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp; /**<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; * The doGet method of the servlet. &lt;br&gt;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; *<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; * This method is called when a form has its tag value method equals to get.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; *<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param request the request send by the client to the server<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param response the response send by the server to the client<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; * @throws ServletException if an error occurred<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; * @throws IOException if an error occurred<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; */<BR><BR>&nbsp;&nbsp;&nbsp; public void doGet(HttpServletRequest request, HttpServletResponse response)<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws ServletException, IOException {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setContentType("text/xml");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setHeader("Cache-Control", "no-cache");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String targetId = request.getParameter("id");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(targetId.trim());<BR><BR>&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((targetId != null) &amp;&amp; users.containsKey(targetId.trim())) {<BR><BR>&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.getWriter().write("&lt;info&gt;&lt;message&gt;welcome&lt;/message&gt;&lt;name&gt;sdl&lt;/name&gt;&lt;/info&gt;");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<BR><BR>&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.getWriter().write("&lt;info&gt;&lt;message&gt;kill&lt;/message&gt;&lt;name&gt;bush&lt;/name&gt;&lt;/info&gt;");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.print("invalid");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR><BR>&nbsp;<BR><BR>&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp; }<BR><BR>&nbsp;&nbsp;&nbsp; /**<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; * Initialization of the servlet. &lt;br&gt;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; *<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; * @throws ServletException if an error occure<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; */<BR><BR>&nbsp;&nbsp;&nbsp; public void init(ServletConfig config) throws ServletException {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.context = config.getServletContext();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; users.put("greg","account data");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; users.put("duke","account data");<BR><BR>&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp; }<BR><BR>&nbsp;<BR><BR>}<BR><BR>[3]写web.xml文件<BR><BR>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<BR><BR>&lt;web-app version="2.4"<BR><BR>&nbsp;&nbsp;&nbsp; xmlns="http://java.sun.com/xml/ns/j2ee"<BR><BR>&nbsp;&nbsp;&nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<BR><BR>&nbsp;&nbsp;&nbsp; xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee<BR><BR>&nbsp;&nbsp;&nbsp; http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&gt;<BR><BR>&nbsp; &lt;servlet&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;description&gt;This is the description of my J2EE component&lt;/description&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;display-name&gt;This is the display name of my J2EE component&lt;/display-name&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;ValidateServlet&lt;/servlet-name&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;com.ValidateServlet&lt;/servlet-class&gt;<BR><BR>&nbsp; &lt;/servlet&gt;<BR><BR>&nbsp;<BR><BR>&nbsp; &lt;servlet-mapping&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;ValidateServlet&lt;/servlet-name&gt;<BR><BR>&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/servlet/ValidateServlet&lt;/url-pattern&gt;<BR><BR>&nbsp; &lt;/servlet-mapping&gt;<BR><BR>&lt;/web-app&gt;<BR><BR>[4]说明：<BR>你可以在IE或FireFox里测试，在文本输入框里输入，当按键抬起，会在层中显示”kill you bush”。其中index.htm中的styles.css只是美化页面，没有列出来源代码。如果在servlet向客户端输出中文，需要编码转换。<img src ="http://www.blogjava.net/codefans/aggbug/32378.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/codefans/" target="_blank">春雷的博客</a> 2006-02-25 11:17 <a href="http://www.blogjava.net/codefans/articles/32378.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Axis开发之Stubs方式 </title><link>http://www.blogjava.net/codefans/articles/32371.html</link><dc:creator>春雷的博客</dc:creator><author>春雷的博客</author><pubDate>Sat, 25 Feb 2006 03:09:00 GMT</pubDate><guid>http://www.blogjava.net/codefans/articles/32371.html</guid><wfw:comment>http://www.blogjava.net/codefans/comments/32371.html</wfw:comment><comments>http://www.blogjava.net/codefans/articles/32371.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/codefans/comments/commentRss/32371.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/codefans/services/trackbacks/32371.html</trackback:ping><description><![CDATA[<DIV class=postTitle>1、建立代理接口文件<BR>public interface ISendSms extends java.rmi.Remote {<BR>&nbsp;&nbsp;&nbsp; public String getUser(String id,String type);<BR>}</DIV>
<DIV class=postText>
<P>转到在目录..\WebRoot\WEB-INF\classes下:</P>
<P>2、生成client stub文件, 生成SendSms.wsdl文件<BR>java -Djava.ext.dirs=../lib org.apache.axis.wsdl.Java2WSDL -oSendSms.wsdl -lhttp://localhost:8080/websms/services/SendSms -n"urn:SendSms" -p"sample.webservice" "urn:SendSms" sample.webservice.ISendSms</P>
<P>生成的SendSms.wsdl文件中，参数名称默认为in1,in2等，需要改成相应的名称。</P>
<P>3、生成client stub<BR>java -Djava.ext.dirs=../lib org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -S true -Nurn:SendSms sample.webservice SendSms.wsdl</P>
<P>生成的文件列表如下:<BR>deploy.wsdd<BR>undeploy.wsdd<BR>ISendSms.java<BR>ISendSmsService.java<BR>ISendSmsServiceLocator.java<BR>SendSmsSoapBindingImpl.java<BR>SendSmsSoapBindingSkeleton.java<BR>SendSmsSoapBindingStub.java</P>
<P>4、布署服务,在WEB-INF目录下生成server-config.wsdd文件, 随Tomcat启动自动加载里面定义的服务<BR>转到目录..\WebRoot\WEB-INF\classes\sample\webservice下<BR>java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:8080/websms/services/AdminService deploy.wsdd</P>
<P>在Axis里书写deploy.wsdd并利用org.apache.axis.client.AdminClient发布，其主要工作就是把&lt;service&gt;标签中的内容添加在server-config.wsdd里，所以一般直接编辑server-config.wsdd文件会更方便一些。不过当你还没有server-config.wsdd文件时，使用deploy.wsdd的方法会更方便些，因为AdminClient会帮你生成一些额外的xml元素（&lt;handler&gt;等等），而这些元素是必要的。<BR><BR>5、项目中加入Axis所需的包, web.xml加入相关定义<BR>&nbsp; &lt;display-name&gt;Apache-Axis&lt;/display-name&gt;<BR>&nbsp; &lt;servlet&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;display-name&gt;Apache-Axis Servlet&lt;/display-name&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;AxisServlet&lt;/servlet-name&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.apache.axis.transport.http.AxisServlet<BR>&nbsp;&nbsp;&nbsp; &lt;/servlet-class&gt;<BR>&nbsp; &lt;/servlet&gt;<BR>&nbsp; &lt;servlet&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;display-name&gt;Axis Admin Servlet&lt;/display-name&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;AdminServlet&lt;/servlet-name&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.apache.axis.transport.http.AdminServlet<BR>&nbsp;&nbsp;&nbsp; &lt;/servlet-class&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;100&lt;/load-on-startup&gt;<BR>&nbsp; &lt;/servlet&gt;<BR>&nbsp; &lt;servlet-mapping&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;AxisServlet&lt;/servlet-name&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/services/*&lt;/url-pattern&gt;<BR>&nbsp; &lt;/servlet-mapping&gt;</P>
<P>通过<A href="http://localhost:8080/websms/services/SendSms?wsdl"><FONT color=#000080>http://localhost:8080/websms/services/SendSms?wsdl</FONT></A>来查看WSDL描述了</P>
<P>6、测试代码<BR>public static void main(String[] args) {<BR>&nbsp;&nbsp;try{<BR>&nbsp; /*ISendSmsService service = new ISendSmsServiceLocator();<BR>&nbsp;&nbsp;&nbsp;ISendSms sender = service.getSendSms();<BR>&nbsp;&nbsp;&nbsp;String result = sender.send("cid","cname");<BR>&nbsp;&nbsp;&nbsp;System.out.println("call result:"+result);*/<BR>&nbsp;&nbsp;&nbsp;String tvServiceURL = "<A href="http://localhost:8080/websms/services/SendSms"><FONT color=#000080>http://localhost:8080/websms/services/SendSms</FONT></A>"; //web service 地址<BR>&nbsp;&nbsp;&nbsp;java.net.URL endpointURL = new java.net.URL(tvServiceURL);<BR>&nbsp;&nbsp;&nbsp;String result = "ok";<BR>&nbsp;&nbsp;&nbsp;result = new SendSmsSoapBindingStub(endpointURL,null).send("id","cname");<BR>&nbsp;&nbsp;&nbsp;System.out.println("call result:"+result);<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;catch(Exception ex){<BR>&nbsp;&nbsp;&nbsp;ex.printStackTrace();<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR><BR>我们还可以通过IE浏览器直接调用服务，方法是在服务URL后加“method=xxx”，其中xxx是要调用的方法名称。例如可以通过<A href="http://localhost:8080/websms/services/SendSms?method=send&amp;userId=uid"><FONT color=#000080>http://localhost:8080/websms/services/SendSms?method=send&amp;userId=uid</FONT></A>&amp;...调用方法。<BR>====================================================================================<BR>另外,&nbsp; 也可能过新建一个deploy.wsdd文件，通过这个文件直接布署我们的服务<BR>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/websms/services/SendSms deploy.wsdd<BR>// 它会在WEB-INF目录生成server-config.wsdd文件, 若此文件已存在, 它会在文件加入当前服务的注册。</P>
<P>生成wsdl文件<BR>java -Djava.ext.dirs=../lib org.apache.axis.wsdl.Java2WSDL -oSendSms.wsdl -lhttp://localhost:8080/websms/services/SendSms -nsendsms sample.webservice.SendSms</P>
<P>生成客户端文件<BR>java -Djava.ext.dirs=../lib org.apache.axis.wsdl.WSDL2Java SendSms.wsdl -p client</P></DIV><img src ="http://www.blogjava.net/codefans/aggbug/32371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/codefans/" target="_blank">春雷的博客</a> 2006-02-25 11:09 <a href="http://www.blogjava.net/codefans/articles/32371.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>