﻿<?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-x-29-随笔分类-SOA &amp; WS</title><link>http://www.blogjava.net/x-29/category/23425.html</link><description>欣赏永运比跟风好</description><language>zh-cn</language><lastBuildDate>Tue, 19 Jun 2007 14:39:17 GMT</lastBuildDate><pubDate>Tue, 19 Jun 2007 14:39:17 GMT</pubDate><ttl>60</ttl><item><title>◎XFire 使用记</title><link>http://www.blogjava.net/x-29/archive/2007/06/19/125058.html</link><dc:creator>x-29</dc:creator><author>x-29</author><pubDate>Tue, 19 Jun 2007 02:26:00 GMT</pubDate><guid>http://www.blogjava.net/x-29/archive/2007/06/19/125058.html</guid><wfw:comment>http://www.blogjava.net/x-29/comments/125058.html</wfw:comment><comments>http://www.blogjava.net/x-29/archive/2007/06/19/125058.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/x-29/comments/commentRss/125058.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/x-29/services/trackbacks/125058.html</trackback:ping><description><![CDATA[<p>XFire开发Web服务的基本步骤<br>1) 检验JAVA类的方法和构造函数是否是公共的,一定要是公开的。<br>2) 将XFire Servlet相关的入口添加到web.xml中。<br></p>
<div style="BORDER-RIGHT: #ffffff 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #ffffff 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #ffffff 1px solid; BACKGROUND-COLOR: #ffffff"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">XFireServlet</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">org.codehaus.xfire.transport.http.XFireConfigurableServlet</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">load-on-startup</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">load-on-startup</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-mapping</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">XFireServlet</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">url-pattern</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/services/*</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">url-pattern</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-mapping</span><span style="COLOR: #0000ff">&gt;</span></div>
<p>3) 创建services.xml并把它放到WEB-INF/classes/META-INF/xfire目录下，这是默认的做法;也可以将services.xml的路径配置到web.xml文件中。</p>
<div style="BORDER-RIGHT: #ffffff 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #ffffff 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #ffffff 1px solid; BACKGROUND-COLOR: #ffffff"><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">XFire</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">display-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">XFire&nbsp;Servlet</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">display-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.codehaus.xfire.transport.http.XFireConfigurableServlet<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;servlet&nbsp;will&nbsp;by&nbsp;default&nbsp;look&nbsp;for&nbsp;the&nbsp;configuration&nbsp;on<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;classpath&nbsp;in&nbsp;"META-INF/xfire/services.xml".&nbsp;You&nbsp;can<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;override&nbsp;it&nbsp;with&nbsp;this&nbsp;parameter.&nbsp;Seperate&nbsp;multiple&nbsp;configuration&nbsp;files&nbsp;with&nbsp;a&nbsp;comma.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">&nbsp;默认会在classpath的META-INF/xfire/下查找services.xml文件，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可以覆盖这个参数，指定多个配置文件</span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">init-param</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">param-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">config</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">param-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">param-value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">services.xml</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">param-value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">init-param</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><br></span></div>
<p>4) 将XFire和其它第三方库添加到Web应用的WEB-INF/lib目录下。</p>
<p><br>FAQ<br>1) Weblogic8.1中应用XFire，启动wls时，出现java.lang.NoSuchMethodError的解决办法。<br>&nbsp;&nbsp; 首先，将XFire提供的QName JAR（qname.jar)放进WEB-INF/lib目录下。然后，将weblogic.xml文件放到WEB-INF下。<br>weblogic.xml的内容为：</p>
<div style="BORDER-RIGHT: #ffffff 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #ffffff 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #ffffff 1px solid; BACKGROUND-COLOR: #ffffff"><span style="COLOR: #0000ff">&lt;!</span><span style="COLOR: #ff00ff">DOCTYPE&nbsp;weblogic-web-app&nbsp;PUBLIC<br>&nbsp;&nbsp;"-//BEA&nbsp;Systems,&nbsp;Inc.//DTD&nbsp;Web&nbsp;Application&nbsp;8.1//EN"<br>&nbsp;&nbsp;"http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">weblogic-web-app</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">container-descriptor</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">prefer-web-inf-classes</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">true</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">prefer-web-inf-classes</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">container-descriptor</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">weblogic-web-app</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span></div>
<p>具体的详细解说，请看XFire的User's Guide.</p>
<p><br>技巧<br>1. 如果Web Services的方法的参数是Collections，那就需要建一个Mapping文件，而且Mapping文件的命名为className.aegis.xml，并且与class放在同一个package下。<br>如：<br>public interface IConstraceSerice {<br>&nbsp;&nbsp; boolean editConstraceInfo(List aList);<br>}<br>Mapping文件如下：IConstraceService.aegis.xml<br>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>&lt;mappings&gt;<br>&nbsp;&nbsp; &lt;mapping&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;method name="editConstraceInfo"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;parameter index="0" componentType="java.lang.String"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/method&gt;<br>&nbsp;&nbsp; &lt;/mapping&gt;<br>&lt;/mappings&gt;</p>
<p>&lt;parameter index="0" componentType="java.lang.String"/&gt;表示第一个参数，里面实际值的类型,这里实际值的类型是java.lang.String.<br>如果是一个JavaBean,如com.test.TestBean,那以就要写成&lt;parameter index="0" compentType="com.test.TestBean"/&gt;</p>
<p>2. 如果返回类型是List或Map，并且里面存放的是自定义类的话，则需要增加一个对于服务接口的配置文件。该文件的命名规则是　接口文件名.aegis.xml。例如接口是UserService.java的话，则此配置文件命名为UserService.aegis.xml。注意此配置文件须与接口放在同一目录下面。<br>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&nbsp; <br>&nbsp;&lt;mappings&gt;&nbsp; <br>&nbsp;&nbsp; &lt;mapping &gt;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;method name="getUsers"&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;return-type componentType="com.test.domain.User"/&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/method&gt;&nbsp; <br>&nbsp;&nbsp; &lt;/mapping&gt;&nbsp; <br>&nbsp;&lt;/mappings&gt; <br>getUsers方法返回类型是List，里面装的User对象。对于这种类型的方法，在配置文件中描述了它的返回值类型。</p>
<p>如果返回的类型是Map的话，做法和List一样。但定义的类型，是Map中的Value部分，并且这样的话，Map中Value所存放的对象就必须全部是同一种类啦。</p>
<p>下面给出一个详细的例子：<br>1）服务接口:<br>public interface MyService2<br>{<br>&nbsp;&nbsp;&nbsp; boolean getInfo();<br>&nbsp;&nbsp;&nbsp; Collection getCollection(); //method 1<br>&nbsp;&nbsp;&nbsp; Collection getCollection(int id); //method 2<br>&nbsp;&nbsp;&nbsp; Collection getCollection(String id); //method 3<br>&nbsp;&nbsp;&nbsp; Collection getCollectionForValues(String id, Collection c); //method 4<br>&nbsp;&nbsp;&nbsp; Collection getCollectionForValues(int value, Collection c); //method 5<br>}<br>2) Mapping文件内容:<br>&lt;mappings&gt;<br>&nbsp;&nbsp;&nbsp; &lt;mapping&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- mapping 1 --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;method name="getCollection"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;return-type componentType="java.lang.Double"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/method&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- mapping 2 --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;method name="getCollection"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;return-type componentType="java.lang.Float"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;parameter index="0" class="int"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/method&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- mapping 3 --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;method name="getCollectionForValues"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;return-type componentType="java.math.BigDecimal"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/method&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- mapping 4 --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;method name="getCollectionForValues"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;parameter index="0" class="java.lang.String"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;parameter index="1" componentType="java.util.Date"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/method&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- mapping 5 --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;method name="getCollectionForValues"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;return-type componentType="java.util.Calendar"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;parameter index="0" class="int"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;parameter index="1" componentType="java.lang.Bit"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/method&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/mapping&gt;<br>&lt;/mappings&gt;</p>
<p><br>3. 如果一个方法的返回类型是一个JavaBean,而这个JavaBean当中又存在Collections,那么就需要定义一个与JavaBean相关的Mapping文件,文件名要与JavaBean名相同,如:User.aegis.xmll,并且与JavaBean放在同一个目录.</p>
<p>例子:<br>1) 服务接口<br>public interface IYMServiceFacade {<br>&nbsp;&nbsp; User getUser();<br>}</p>
<p>2) JavaBean<br>public class User {<br>&nbsp;&nbsp; private Strirng userName;<br>&nbsp;&nbsp; // 这里是一个Collection<br>&nbsp;&nbsp; private Set rooms;</p>
<p>&nbsp;&nbsp; .....<br>&nbsp;&nbsp; .....<br>}</p>
<p>3) Mapping文件(User.aegis.xml)<br>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>&lt;mappings&gt;<br>&nbsp;&nbsp;&nbsp; &lt;mapping&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="rooms" componentType="com.powerunion.ymservice.dto.Room"/&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/mapping&gt;<br>&lt;/mappings&gt;</p>
<p>介绍:&lt;property name="rooms" componentType="com.powerunion.ymservice.dto.Room"/&gt;<br>其中的name属性就是JavaBean里面定义的rooms,componentType上面的相同,表示Collections里真正存储的类型.</p>
<p><br>注：如果服务接口的参数或者返因类型是基本类型（int, float, double等)就不需要创建Mapping文件。<br>详细的信息见XFire的User's Guide.</p>
<p><br>4.如果Web Services和客户端运行在同一个JVM上，可以选择使用本地传输，可以大幅提升性能。如：以下指定服务端URL的这行。<br>String serviceUrl = "<a href="http://localhost:8080/YM/services/ContractService">http://localhost:8080/YM/services/ContractService</a>";<br>替换为<br>String serviceUrl = "xfire.local://ContractService";</p>
<p><br>5. 用ant task 生成xfire 客户端代码 <br>&nbsp;&nbsp; <br>用xfire不管是配置web service，还是生成客户代码都很方便． <br>生成客户代码只要在用ant生成就可以了！</p>
<p>build.xml </p>
<p><br>代码<br>&lt;?xml version="1.0"?&gt;&nbsp; <br>&nbsp; <br>&lt;project default="genfiles" basedir="."&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;property name="lib" value="WebRoot/WEB-INF/lib" /&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;path id="myclasspath"&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="${lib}"&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="*.jar" /&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pathelement location="${genfiles}" /&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;/path&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;property name="code_path" value="src" /&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;property name="wsdl_path" value="Echo1Service.xml" /&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;property name="code_package" value="com.client" /&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;target name="genfiles"&nbsp; description="Generate the files"&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="myclasspath" /&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;wsgen outputDirectory="${code_path}" wsdl="${wsdl_path}" package="${code_package}" binding="xmlbeans" /&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;/target&gt;&nbsp; <br>&lt;/project&gt;&nbsp; <br>&nbsp;<br></p>
<img src ="http://www.blogjava.net/x-29/aggbug/125058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/x-29/" target="_blank">x-29</a> 2007-06-19 10:26 <a href="http://www.blogjava.net/x-29/archive/2007/06/19/125058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>◎XFire on WAS5.1</title><link>http://www.blogjava.net/x-29/archive/2007/05/28/120401.html</link><dc:creator>x-29</dc:creator><author>x-29</author><pubDate>Mon, 28 May 2007 02:07:00 GMT</pubDate><guid>http://www.blogjava.net/x-29/archive/2007/05/28/120401.html</guid><wfw:comment>http://www.blogjava.net/x-29/comments/120401.html</wfw:comment><comments>http://www.blogjava.net/x-29/archive/2007/05/28/120401.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/x-29/comments/commentRss/120401.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/x-29/services/trackbacks/120401.html</trackback:ping><description><![CDATA[1、在WAS5.1上创建一个共享库<br>2、将jaxen.jar、jdom-1.0.jar、qname.jar、stax-api-1.0.1.jar、wsdl5j-1.6.1.jar放置于共享库里。<br>3、在应用程序里引用这个共享库，并将应用程序的class loader policy 设置为parent_last.<br>
<img src ="http://www.blogjava.net/x-29/aggbug/120401.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/x-29/" target="_blank">x-29</a> 2007-05-28 10:07 <a href="http://www.blogjava.net/x-29/archive/2007/05/28/120401.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>