<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無聊人士

    搬家==》www.soapui.cn

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      32 隨筆 :: 0 文章 :: 60 評論 :: 0 Trackbacks
    白衣同志是個好同志,“刨蟲”啊,俺現在用的O/R Broker就是白衣“刨”出來的!

    今天準備睡覺,發現白衣同志blog上在推薦“Web Service Framework:XFire”( http://m.tkk7.com/calvin/archive/2005/12/04/22390.html).嘿嘿,受夠了axis,終于解放了。

    xfire的user's guide做得很漂亮,俺這種E盲都能看個半懂。quick start看完,直接跳到spring一章,順帶拿手上的一個測試工程做測試,HelloXfire。

    xfire 要加的包一大堆,guide上“Dependency Guide”這一章純粹是在糊弄人,我的工程是webwork2.1.7(freemarker2.3.4)+spring1.2.5+ hibernate3.0.5+oracle8.1.7的東西,原來的jar不算,新加了一堆進去,最后所有的包加進來有19MB,暈啊!
    antlr-2.7.5H3.jar
    aopalliance.jar
    asm.jar
    asm-attrs.jar
    cglib-nodep-2.1_2.jar
    classes12.jar
    commons-codec-1.3.jar
    commons-collections-3.1.jar
    commons-dbcp-1.2.1.jar
    commons-fileupload.jar
    commons-io-1.1.jar
    commons-lang-2.1.jar
    commons-logging.jar
    commons-pool-1.2.jar
    concurrent-1.3.4.jar
    cos-multipart.jar
    dom4j-1.6.jar
    freemarker.jar
    groovy-all-1.0-jsr-04.jar
    hibernate3.jar
    javamail-1.3.2.jar
    jaxen-1.1-beta-8.jar
    jdom-1.0.jar

    jencrypt.jar
    jta.jar
    log4j-1.2.9.jar
    lucene-1.4.3.jar
    nls_charset12.jar
    ognl.jar
    oscache-2.2.jar
    oscore.jar
    quartz-1.5.0.jar
    quartz-oracle-1.5.0.jar
    quartz-weblogic-1.5.0.jar
    spring.jar
    spring-xwork-integration.jar
    stax-1.1.2-dev.jar
    stax-api-1.0.jar
    stax-utils-snapshot-20040917.jar

    velocity-dep.jar
    webflow-2.1.7.jar
    webwork-2.1.7.jar
    webwork2-spring.jar
    xfire-all-1.0-M6a.jar
    xwork.jar
    activation-1.0.2.jar
    commons-beanutils-1.7.0.jar
    wsdl4j-1.5.1.jar


    user's guide上說得比較清楚,下載下來的zip里面也有一個spring的example。
    首先是在web.xml中做配置,除了原來spring、webwork的,加上
     1    <context-param>
     2        <param-name>contextConfigLocation</param-name>
     3        <param-value>classpath:beans.xml,classpath:org/codehaus/xfire/spring/xfire.xml</param-value>
     4    </context-param>
     5    <servlet>
     6        <servlet-name>xfire</servlet-name>
     7        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     8    </servlet>
     9    <servlet-mapping>
    10        <servlet-name>xfire</servlet-name>
    11        <url-pattern>/xfire/*</url-pattern>
    12    </servlet-mapping>


    然后在WEB-INF下面放一個xfire-servlet.xml文件,實際上就是一個spring的配置文件
     1<?xml version="1.0" encoding="UTF-8"?>
     2<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     3<beans>
     4    <!-- START SNIPPET: xfire -->
     5    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
     6        <property name="urlMap">
     7            <map>
     8                <entry key="/echo" value-ref="echo" />
     9                <entry key="/HelloWorld" value-ref="HelloWorld" />
    10                <entry key="/AccountManager" value-ref="AccountManager-xfire" />
    11            </map>
    12        </property>
    13    </bean>
    14    <bean id="echoBean" class="com.yninfo.rules.services.impl.EchoImpl" />
    15    <!-- Declare a parent bean with all properties common to both services -->
    16    <bean id="echo" class="org.codehaus.xfire.spring.remoting.XFireExporter">
    17        <property name="serviceFactory" ref="xfire.serviceFactory" />
    18        <property name="xfire" ref="xfire" />
    19        <property name="serviceBean" ref="echoBean" />
    20        <property name="serviceInterface" value="com.yninfo.rules.services.Echo" />
    21    </bean>
    22    <bean id="HelloWorld" class="org.codehaus.xfire.spring.remoting.XFireExporter">
    23        <property name="serviceFactory" ref="xfire.serviceFactory" />
    24        <property name="xfire" ref="xfire" />
    25        <property name="serviceBean" ref="HelloService" />
    26        <property name="serviceInterface" value="com.yninfo.rules.services.HelloWorld" />
    27    </bean>
    28    <bean id="AccountManager-xfire" class="org.codehaus.xfire.spring.remoting.XFireExporter">
    29        <property name="serviceFactory" ref="xfire.serviceFactory" />
    30        <property name="xfire" ref="xfire" />
    31        <property name="serviceBean" ref="AccountManager" />
    32        <property name="serviceInterface" value="com.yninfo.rules.services.AccountManager" />
    33    </bean>
    34    <!-- END SNIPPET: xfire -->
    35</beans>
    36
    值得注意的是“serviceBean”,按user's guides上給的例子是“service”,結果是報錯,大意說service這個屬性沒有setter。
     1public class ServiceBean
     2    implements InitializingBean, ApplicationContextAware
     3{
     4
     5    private Object service;
     6    /**
     7     * Gets the object which backs this service.
     8     * @return
     9     */

    10    public Object getServiceBean()
    11    {
    12        return service;
    13    }

    14}

    我做測試的三個例子,echo是抄xfire examples上的,HelloWorld是一個groovy的例子
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
    <beans>
        
    <bean id="GroovyScriptFactory" class="org.springframework.beans.factory.script.groovy.GroovyScriptFactory">
            
    <property name="expirySeconds" value="20" />
        
    </bean>

        
    <bean id="HelloService" factory-bean="GroovyScriptFactory" factory-method="create">
            
    <constructor-arg index="0" value="classpath:com/yninfo/rules/services/impl/HelloWorldImpl.groovy" />
        
    </bean>
    </beans>
    而AccountManager,則是標準的spring+hibernate的東西。
     1    <bean id="AccountManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
     2        <property name="transactionManager" ref="TransactionManager" />
     3        <property name="transactionAttributes">
     4            <props>
     5                <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
     6                <prop key="load">PROPAGATION_REQUIRED,readOnly</prop>
     7                <prop key="*">PROPAGATION_REQUIRED</prop>
     8            </props>
     9        </property>
    10        <property name="target">
    11            <bean class="com.yninfo.rules.services.impl.AccountManagerImpl">
    12                <property name="accountDAO" ref="AccountDAO" />
    13            </bean>
    14        </property>
    15    </bean>

    配置完成后,啟動tomcat,用http://192.168.0.100:8080/rules/xfire/echo?wsdl可以看到wsdl的描述。

    在vs2005里面,建了個j#的工程(略)。。。

    注:手誤,把圖覆蓋了,只好全部刪掉

    posted on 2005-12-05 03:20 mmwy 閱讀(7739) 評論(12)  編輯  收藏 所屬分類: Others

    評論

    # re: 接觸xfire 2005-12-05 09:27 mingo
    感覺和burlap差不多  回復  更多評論
      

    # re: 接觸xfire 2005-12-05 10:56 江南白衣@ITO
    Spring的Refrence里Remoting 一章也加入了XFire,看來也是決定放低axis,和XFire曖昧了:)  回復  更多評論
      

    # re: 接觸xfire 2006-03-10 23:05 Flier Lu
    XFireExporter 這種方式太繁瑣了,直接用 Java 5 annotation 或 commons-attributes 用起來舒服得多,只需要對服務接口做直接定義即可
    /**
    * Common Server Variables
    *
    * @@WebService(name = "ServerVariables", serviceName = "ServerVariables", targetNamespace = "http://flier.yeah.net/")
    * @@SOAPBinding(style = SOAPBindingAnnotation.STYLE_RPC)
    */
    public interface ServerVariables
    {
    /**
    * @@WebMethod(operationName = "GetMachineName", action="urn:GetMachineName")
    * @@.return WebResult("machineName")
    */
    string GetMachineName();
    }

    spring 中也僅需要增加對此 bean 得管理

    <bean id="serverVariables" class="net.yeah.flier.ws.impl.ServerVariablesImpl" singleton="true">

    所有的 dirty work 可以一次性配置進去

    詳細的說明可以參考我的一篇文章

    使用 xfire 快速發布 WebService
    http://m.tkk7.com/flier/archive/2006/03/10/34730.html  回復  更多評論
      

    # re: 接觸xfire 2006-04-26 14:10 pc
    再研究一下 收藏了  回復  更多評論
      

    # re: 接觸xfire 2006-07-27 20:44 xx
    你好,我運行xfire自帶的bookservice例子咋老出這個錯誤呢?

    java.lang.NullPointerException
    at com.caucho.xml.QAttributedNode.getAttributeNodeNS(QAttributedNode.java:146)
    at com.ibm.wsdl.util.xml.DOMUtils.getAttributeNS(Unknown Source)
    at com.ibm.wsdl.util.xml.DOM2Writer.printNamespaceDecl(Unknown Source)
    at com.ibm.wsdl.util.xml.DOM2Writer.printNamespaceDecl(Unknown Source)
    at com.ibm.wsdl.util.xml.DOM2Writer.print(Unknown Source)
    at com.ibm.wsdl.util.xml.DOM2Writer.serializeAsXML(Unknown Source)
    at com.ibm.wsdl.extensions.schema.SchemaSerializer.marshall(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.printExtensibilityElements(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.printTypes(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source)
    at org.codehaus.xfire.wsdl11.builder.WSDLBuilder.write(WSDLBuilder.java:181)
    at org.codehaus.xfire.wsdl11.builder.WSDLBuilderAdapter.write(WSDLBuilderAdapter.java:40)
    at org.codehaus.xfire.DefaultXFire.generateWSDL(DefaultXFire.java:104)
    at org.codehaus.xfire.transport.http.XFireServletController.generateWSDL(XFireServletController.java:325)
    at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:116)
    at org.codehaus.xfire.transport.http.XFireServlet.doGet(XFireServlet.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:115)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:389)
    at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:492)
    at com.caucho.util.ThreadPool.run(ThreadPool.java:425)
    at java.lang.Thread.run(Thread.java:536)

      回復  更多評論
      

    # re: 接觸xfire 2006-07-27 22:18 xx
    上面是我發的,我剛剛調用webservice是成功的,但是在IE中輸入:http://localhost:8080/test/BookService?WSDL就出現上面的錯誤。。。為啥?  回復  更多評論
      

    # re: 接觸xfire 2006-07-27 22:19 xx
    wsdl4j-1.5.2.jar 包也有,啥原因呢?  回復  更多評論
      

    # re: 接觸xfire 2006-07-28 17:25 xx
    我繼續,把Resin換成tomcat就可以顯示wsdl文件的內容了,resin的沖突?  回復  更多評論
      

    # re: 接觸xfire 2006-07-29 01:32 mmwy
    我也遇到過,在tomcat里面正常,扔resin下面,wsdl出不來,別的都正常。
      回復  更多評論
      

    # re: 接觸xfire 2006-09-03 21:43 bellone.wu
    請教xfire有沒有超時的機制呢...

    burlap沒有.soap 里有超時機制.  回復  更多評論
      

    # re: 接觸xfire 2006-09-21 16:07 wmuu
    今天試了下,wsdl出不來別的正常,半天沒找到原因。最后把web.xml里頭的log4j去掉就正常了。  回復  更多評論
      

    # re: 接觸xfire 2006-12-08 15:12 hellen
    我現在也有用oracle8.1.7和hibernate3做項目呢,我用的驅動就是oracle8.1.7下面的classes12.jar,可是在eclipse下數據庫能連上,可是就是生不成hibernate文件,報這個錯an error occurrend during generating artifacts
    我在csdn上發貼了,麻煩你告訴我一下唄
    http://community.csdn.net/Expert/topic/5215/5215576.xml?temp=.6507227  回復  更多評論
      

    主站蜘蛛池模板: 亚洲AV永久无码区成人网站 | 中国一级特黄的片子免费| 亚洲AV成人无码天堂| 亚洲精品无码成人片久久| 手机看片久久国产免费| 韩国免费一级成人毛片| 人妻丰满熟妇无码区免费| 精品免费久久久久国产一区| 亚洲精品国产高清在线观看| 亚洲国产精品乱码在线观看97| 亚洲一区无码中文字幕| 四虎影视在线永久免费看黄| 精品熟女少妇AV免费观看| 91短视频在线免费观看| 国产在线观看免费视频软件| 成人免费网站视频www| 亚洲av无码专区在线观看亚| 亚洲人成人网毛片在线播放| 久久青青草原亚洲av无码app| 在线日韩日本国产亚洲| 亚洲国产精品13p| 午夜亚洲av永久无码精品| 永久免费AV无码网站在线观看 | 亚洲人成网国产最新在线| 亚洲制服在线观看| 久久久久亚洲精品日久生情 | 国产高清不卡免费视频| 国产真人无码作爱免费视频| 一级特黄录像视频免费| 黄色一级视频免费观看| 国产亚洲精品成人久久网站| 亚洲Av永久无码精品一区二区| 亚洲综合无码一区二区痴汉| 亚洲av成人一区二区三区| 亚洲伊人久久大香线蕉| 亚洲成年人免费网站| 亚洲中文字幕无码av在线| youjizz亚洲| 亚洲av无码无线在线观看| 国产亚洲精品美女| 五月天婷婷免费视频|