??xml version="1.0" encoding="utf-8" standalone="yes"?>国产一区二区欧美,传媒视频在线,欧美激情a在线http://www.aygfsteel.com/fykyx521/zh-cnFri, 20 Jun 2025 01:10:04 GMTFri, 20 Jun 2025 01:10:04 GMT60webService?/title><link>http://www.aygfsteel.com/fykyx521/archive/2009/03/17/260314.html</link><dc:creator>?/dc:creator><author>?/author><pubDate>Tue, 17 Mar 2009 11:56:00 GMT</pubDate><guid>http://www.aygfsteel.com/fykyx521/archive/2009/03/17/260314.html</guid><wfw:comment>http://www.aygfsteel.com/fykyx521/comments/260314.html</wfw:comment><comments>http://www.aygfsteel.com/fykyx521/archive/2009/03/17/260314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/fykyx521/comments/commentRss/260314.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/fykyx521/services/trackbacks/260314.html</trackback:ping><description><![CDATA[<p> /*title: web service入门学习W记Q七Q?br /> **date: 2007/01/19<br /> **author:laomai<br /> **url: <a >http://blog.csdn.net/laomai/</a><br /> */</p> <p>七、命令行开发过E?br />    通过以上的学习,我们知道如何在ant脚本和ide环境中开发一个简单的webservice.<br /> 但是作ؓ搞技术的人特别是搞c的h来看Q上面的q程隐藏了太多的东西Q?br /> Ҏ们有ȝ_的hQ自然就x清楚脚本背后的过E?br /> 假设我们的机器上没有ide环境和ant工具Q?br /> 我们如何“手工”~译qwebservice呢?<br /> q就是本节要讲述的内?-只用命o行工具开发webservice.</p> <p>再次声明:</p> <p>本部分主要参考了</p> <p><a >http://blog.csdn.net/lin_bei/archive/2006/11/07/1371131.aspx</a></p> <p>的内容,׃q位兄弟译的不是很通顺Q我按照自q理解来改~成?br /> hellowrold的例?-)?br /> 其他部分为我原创Q{载时h明出处?/p> <p>0、设|环境变?br />  把jdk和javaee的\径如<br />  D:\Java\jdk1.6.0<br />  D:\Sun\SDK\bin加到pȝ的path变量中去</p> <p>1、徏立项目目?br />  首先建立一个项目的目录Q名为WebTestQ项目目录下又包含三个子目录<br />   src\      本目录用于存放源代码Q?br />   build\    本目录用于存放输出的文g<br />   deploy\   本目录用于对服务器打?br />    <br /> 2、编写服务器cd现文?br />   在项目的src目录下徏立一个个子目录endpointQ?br />   在这个endpoint子目录下新徏一个Hello.java文gQ内容如?br />  <br />  /*src\endpoint\Hello.java文g   <br />   提供webservice的服务器端实现类<br />  */<br />  package endpoint;<br />   <br />  import javax.jws.WebService;<br />  import javax.jws.WebMethod;<br />   <br />  @WebService<br />  public class Hello<br />  {<br />   @WebMethod<br />      public String getHello(String name)<br />      {<br />         return "Hello " + name + "!";<br />      }<br />   }<br /> 3、编译服务器c?br />  ①在build目录下徏立一个子目录classes<br />    ②在命o行执行如下命?br />     cd WebTest  ;q入目目录<br />     javac -classpath d:/Sun/SDK/lib/javaee.jar -d ./build/classes src/endpoint/Hello.java  ;~译服务器类<br />    执行完后会生一个build\classes\endpoint\Hello.class文g<br />   <br /> 4、生成wsdl文g<br />  ①在build目录下徏立一个子目录generated<br />  ②生成wsdl文g,执行<br />   wsgen -cp ./build/classes -keep -d ./build/classes -r ./build/generated -wsdl  endpoint.Hello<br />  <br />  执行完成会在./build/generated产生两个文g<br />  HelloService.wsdl<br />  HelloService_schema1.xsd<br />  q且在\build\class\endpoint下徏立一个jaxws目录Q下面有4个文?br />  GetHello.java                        <br />  GetHello.class<br />  GetHelloResponse.java<br />  GetHelloResponse.class<br />  <br />  q些文g与与前面所说的ant脚本中生成的<br />  D:\Sun\SDK\domains\domain1\generated\ejb\j2ee-modules\endpoint_Hello\endpoint\jaxws<br />  下的文g相同<br />  <br /> 5、将服务器打包,做成war文g<br />  ①徏立打包所需要的目录<br />     在项目的deploy目录下徏立一个子目录/WEB-INFQ?br />    WEB-INF子目录下再徏立两个子目录<br />     classes/  用于存放服务器端c?br />     wsdl/     用于存放wsdl文g</p> <p> ②将各输出文件或目录拯到相应的目录?br />   (1)把build\classes\endpoint整个目录拯到deploy/WEB-INF/class目录?br />   (2)把build\generated目录下的两个文g<br />    HelloService.wsdl、HelloService_schema1.xsd拯?br />       deploy/WEB-INF/wsdl目录?br />  ③在deploy/WEB-INF/ 目录下新Z个web.xml文gQ内容ؓ<br />   <?xml version="1.0" encoding="UTF-8"?><br />   <web-app xmlns="<a <br />    xmlns:j2ee="<a <br />    xmlns:xsi="<a version="2.5"<br />    xsi:schemaLocation="<a >http://java.sun.com/xml/ns/javaee</a><br />    <a ><br />   <description>WebTier for the Hello Service</description><br />   <display-name>HelloWAR</display-name><br />   <servlet><br />    <description>Endpoint for Hello Web Service</description><br />    <display-name>HelloWebService</display-name><br />    <servlet-name>Hello</servlet-name><br />    <servlet-class>endpoint.Hello</servlet-class><br />    <load-on-startup>0</load-on-startup><br />   </servlet><br />   <servlet-mapping><br />    <servlet-name>Hello</servlet-name><br />    <url-pattern>/HelloService</url-pattern><br />   </servlet-mapping><br />   <session-config><br />    <session-timeout>54</session-timeout><br />   </session-config><br />   </web-app><br />  ④将service打包,执行<br />   (1)cd WebTest\deploy   ;q入打包目录<br />   (2)jar cvf hello.war *  ;当前目录下的所有内Ҏ包到hello.war文g?br />   <br />   <br /> 6、将service cd布到|络服务器上<br />  ①启动sun 服务?br />    Ҏ?br />   开?>E序->Sun Microsystems->Application Server PE 9->Start  Default Server<br />  ②在目目录下徏立一个passwd文gQ内Ҏsun服务器admin用户的密码,例如<br />   AS_ADMIN_PASSWORD=testtesttest<br />  ③将hello.war发布到服务器上,执行<br />   (1)cd WebTest  ;q入目目录<br />   (2)发布服务器包Q注意这个命令是在一行执行的Q?br />   我ؓ了书写方便而断行。分号后面是注释<br />   asadmin deploy <br />     --user admin             ;理员用户名<br />     --passwordfile passwd    ;密码文g名,是我们刚才写的passwd文g<br />     --host localhost         <br />     --port 4848     ;理端口?br />     --contextroot myhello   ;上下文根名称<br />     --upload=true     <br />     --target server    <br />     deploy/hello.war<br />  <br />  ④在览器中输入地址<br />   <a href="http://localhost:8080/myhello/HelloService?WSDL">http://localhost:8080/myhello/HelloService?WSDL</a>Q?br />   如果览器能昄出正的内容Q就说明成功?/p> <p>7、生成客L的stubc?br />  ①在目的build\classes目录下徏立一个stub子目?br />  ②执?br />   (1)cd WebTest   ;q入目子目?br />   (2)wsimport -keep -d ./build/classes/stub <a href="http://localhost:8080/myhello/HelloService?WSDL">http://localhost:8080/myhello/HelloService?WSDL</a><br />  <br />  执行完成后会在build/classes/stub下徏立一个endpoint目录Q下面有q些文g<br />   GetHello.java<br />   GetHelloResponse.java<br />   Hello.java<br />   HelloService.java<br />   GetHello.class<br />   GetHelloResponse.class<br />   Hello.class<br />   HelloService.class<br />   ObjectFactory.class<br />   ObjectFactory.java<br />   package-info.java<br />   package-info.class<br />  q些文g和ant脚本中import执行的结果一?br />  <br /> 8、编写客L试E序<br />  在项目的src目录下徏立一个子目录clientQ在q个目录下面建立一?br />  Client.java文gQ内容ؓ<br />  <br />  // src\client\Client.java文g 调用服务器提供的webservice的测试类 <br />  package client;</p> <p> import javax.xml.ws.WebServiceRef;<br />  import endpoint.HelloService;<br />  import endpoint.Hello;</p> <p> public class Client<br />  {<br />      @WebServiceRef(wsdlLocation="<a href="http://localhost:8080/myhello/HelloService?WSDL">http://localhost:8080/myhello/HelloService?WSDL</a>")<br />      static HelloService service;<br />   public static void main(String[] args)<br />      { <br />          Client client = new Client();<br />          client.doHello();<br />      }<br />         public void doHello()<br />      {<br />          try<br />          {<br />              Hello port = service.getHelloPort();<br />              String ret = port.getHello(System.getProperty("user.name"));<br />              System.out.println("Hello result = " + ret);<br />          }<br />          catch(Exception e)<br />          {<br />              e.printStackTrace();<br />          }<br />      }<br />  }<br />  <br /> 9、编译客LE序<br />  执行<br />  (1)cd WebTest  ;q入目目录<br />  (2)javac -classpath ./build/classes/stub;d:/Sun/SDK/lib/javaee.jar;d:/Sun/SDK/lib/appserv-ws.jar -d ./build/classes/stub src/client/Client.java  <br />  执行成功后会在F:\exercise\java\WebTest\build\classes目录下徏立一?br />  client目录Q下面有一个Client.class文g<br />  <br /> 10、运行客LE序<br />  (1)cd WebTest\build\classes\stub  ;q入client的上U目?br />  (2)set  APPCPATH=.     ;讄环境变量APPCPATHQ不然运行appclientE序时会Z堆莫名奇妙的错误<br />  (3)>appclient client.Clientq行试E序Q结果ؓ<br />   Hello result = Hello Administrator!<br />  执行成功</p> <p><br /> /*title: web service入门学习W记Q八Q?br /> **date: 2007/01/19<br /> **author:laomai<br /> **url: <a >http://blog.csdn.net/laomai/</a><br /> */</p> <p>八、小l?br /> 开发webservice的基本步骤ؓ<br /> 1、编写服务器端,要点?br />  ①导入WebService包和WebMethod?br />    import javax.jws.WebService;<br />    import javax.jws.WebMethod;<br />  ②实现的服务cd加@WebServiceW号 <br />  ③ؓ了代码清?cL供的公开Ҏ前加@WebMethodW号,q个不写对编译也没媄响,<br />   <br /> 2、编译服务器端,要点?br />  ①javac命o的classpath选项中要有javaee.jar的\径,?br />   javac -classpath d:/Sun/SDK/lib/javaee.jar -d ./build src/endpoint/Hello.java<br />  ②用wsgen命o生成wsdl文g.<br />  ③将服务器端打包<br />  注意如果是sun的服务器Q那么把servicecȝ接编译到<br />  javaee5安装目录\domains\domain1\autodeploy下,可以自动完成②和③的工作?br />  我们介绍的sun自带的入门脚本就是这么做的?br /> 3、在客户端机器上自动生成stubc?要点?br />  ①客h上必M装有jdk和javaee5<br />  ②用wsimport工具服务器传过来的wsdl文g转换成本地的stubc?br /> 4、编写客L调用代码Q要?<br />  ①导入WebServiceRef?br />   import javax.xml.ws.WebServiceRef;<br />  ②导入本地生成的stubc,?br />   import endpoint.HelloService;<br />   import endpoint.Hello;<br />  ③指明服务器的wsdl路径<br />   @WebServiceRef(wsdlLocation="<a href="http://localhost:8080/myhello/HelloService?WSDL">http://localhost:8080/myhello/HelloService?WSDL</a>")<br />  ④声明一个静态的service对象<br />   static HelloService service;<br />  ⑤对要调用的q程Ҏ声明一个代理对象,通过代理来调用真正的q程Ҏ<br />   Hello port = service.getHelloPort();<br />      String ret = port.getHello(System.getProperty("user.name"));<br /> 5、编译客L调用E序Q注意classpath参数中要?br />  ①stubcȝ路径<br />  ②javaee.jar的\?br />  ③appserv-ws.jar的\?br />  <br /> 6、用appclient执行客户端程序,要点?br />  ①进入到客户端程序的上目录<br />  ②把APPCPATH的D|ؓ当前目录" . "<br />  ③appclient的第一个参Cؓ客户端程序名Q?br />    后面的参数是传给客户端程序本w的命o行参数?/p> <p>/*title: web service入门学习W记Q九Q?br /> **date: 2007/01/19<br /> **author:laomai<br /> **url: <a >http://blog.csdn.net/laomai/</a><br /> */ <br />  <br /> 九、本文中用到的文?br /> 1、WebTest目文g列表 <br /> WebTest\passwd 保存密码的文Ӟ手工建立<br /> WebTest\src 子目?手工建立Q内容ؓ<br />  endpoint\Hello.java  服务器类的实现文?br />  client\Client.java   客户cȝ实现文g<br /> WebTest\build<br />  generated 子目?手工建立Q内容ؓ<br />   HelloService.wsdl   由wsgen命o生成<br />   HelloService_schema1.xsd  由wsgen命o生成<br />  classes 子目?手工建立Q内容ؓ<br />   endpoint\Hello.class  由javac命o生成<br />   endpoint\jaxws子目录,由wsgen命o自动生成Q内容ؓ<br />     GetHello.java<br />     GetHelloResponse.java<br />     GetHello.class<br />     GetHelloResponse.class<br />   stub 子目录,手工建立Q内容ؓ:<br />    client\Client.class 由javac命o生成<br />    endpoint 子目?由wsimport命o自动生成Q内容ؓ:<br />     GetHello.java<br />     GetHelloResponse.java<br />     Hello.java<br />     HelloService.java<br />     ObjectFactory.java<br />     package-info.java<br />     package-info.class<br />     GetHello.class<br />     GetHelloResponse.class<br />     Hello.class<br />     HelloService.class<br />     ObjectFactory.class<br /> WebTest\deploy子目?手工建立Q内容ؓ<br />  hello.war WEB-INF子目录打包后生成的文Ӟ由jar命o生成<br />  WEB-INF   打包的输入目录,手工建立。内容包括:<br />   web.xml   手工建立<br />   classes\endpoint子目?为build\classes\endpoint的拷?br />   wsdl子目录,由build\generated拯而来</p> <p>2、生成的HelloService.wsdl文g的内?br /> <?xml version="1.0" encoding="UTF-8" standalone="yes"?><br /> <definitions targetNamespace="<a href="http://endpoint/">http://endpoint/</a>" name="HelloService" xmlns="<a xmlns:tns="<a href="http://endpoint/">http://endpoint/</a>" xmlns:xsd="<a xmlns:soap="<a ><br />   <types><br />     <xsd:schema><br />       <xsd:import namespace="<a href="http://endpoint/">http://endpoint/</a>" schemaLocation="HelloService_schema1.xsd"/><br />     </xsd:schema><br />   </types><br />   <message name="getHello"><br />     <part name="parameters" element="tns:getHello"/><br />   </message><br />   <message name="getHelloResponse"><br />     <part name="parameters" element="tns:getHelloResponse"/><br />   </message><br />   <portType name="Hello"><br />     <operation name="getHello"><br />       <input message="tns:getHello"/><br />       <output message="tns:getHelloResponse"/><br />     </operation><br />   </portType><br />   <binding name="HelloPortBinding" type="tns:Hello"><br />     <soap:binding transport="<a style="document"/><br />     <operation name="getHello"><br />       <soap:operation soapAction=""/><br />       <input><br />         <soap:body use="literal"/><br />       </input><br />       <output><br />         <soap:body use="literal"/><br />       </output><br />     </operation><br />   </binding><br />   <service name="HelloService"><br />     <port name="HelloPort" binding="tns:HelloPortBinding"><br />       <soap:address location="REPLACE_WITH_ACTUAL_URL"/><br />     </port><br />   </service><br /> </definitions></p> <p>十、致?br />  在学习WebService的过E中Q我得到了csdn java版的叉城朋友的许多指点Q?br /> 饼子堂的兄弟们也l了很多有用的资料,q里一q表C意。本文也是我给q些<br /> 朋友们的一个汇报和ȝQ呵c?/p> <p>Q?-end <br /> /*title: web service入门学习W记<br /> **date: 2007/01/23<br /> **author:laomai<br /> **url: <a >http://blog.csdn.net/laomai/*/</a>Q?/p> <p><br /> </p> <p>转自http://blog.csdn.net/laomai/archive/2007/01/23/1490829.aspx<br /> </p> <img src ="http://www.aygfsteel.com/fykyx521/aggbug/260314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/fykyx521/" target="_blank">?/a> 2009-03-17 19:56 <a href="http://www.aygfsteel.com/fykyx521/archive/2009/03/17/260314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>j2se&webService ?/title><link>http://www.aygfsteel.com/fykyx521/archive/2009/03/17/260312.html</link><dc:creator>?/dc:creator><author>?/author><pubDate>Tue, 17 Mar 2009 11:54:00 GMT</pubDate><guid>http://www.aygfsteel.com/fykyx521/archive/2009/03/17/260312.html</guid><wfw:comment>http://www.aygfsteel.com/fykyx521/comments/260312.html</wfw:comment><comments>http://www.aygfsteel.com/fykyx521/archive/2009/03/17/260312.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/fykyx521/comments/commentRss/260312.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/fykyx521/services/trackbacks/260312.html</trackback:ping><description><![CDATA[     摘要: JavaSE6.0 Web Service学习W记(引用) Web Service概述 Web Service的定? W3Cl织对其的定义如下,它是一个Y件系l,Z支持跨网l的机器间相互操作交互而设计。Web Service服务通常被定义ؓ一l模块化的APIQ它们可以通过|络q行调用Q来执行q程pȝ的请求服务? q里我们从一个程序员的视角来观察web service。在传统的程序编...  <a href='http://www.aygfsteel.com/fykyx521/archive/2009/03/17/260312.html'>阅读全文</a><img src ="http://www.aygfsteel.com/fykyx521/aggbug/260312.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/fykyx521/" target="_blank">?/a> 2009-03-17 19:54 <a href="http://www.aygfsteel.com/fykyx521/archive/2009/03/17/260312.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ҽ</a>| <a href="http://" target="_blank">¹Ȫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ƹ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ղ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ž</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ٹ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¬</a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">;</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ұ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɾ</a>| <a href="http://" target="_blank">ͬ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">᰸</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͼ</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>