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

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

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

    無(wú)聊人士

    搬家==》www.soapui.cn

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      32 隨筆 :: 0 文章 :: 60 評(píng)論 :: 0 Trackbacks

    受白衣同志的當(dāng),上了xfire的賊船,拋棄了axis,嗚!

    xfire 1.0終于final了,試用了一下,,感覺(jué)同1.0M6相比,使用變化不大。

    看看user guide,照著examples下的例子,基本上hello xfire不成問(wèn)題。

    1、jar包

    同以往一樣,xfire user guide中的Dependency Guide.html還是說(shuō)得不明不白,除了讓人發(fā)暈,沒(méi)有太大的實(shí)際意義。

    SNAG-0000.jpg

    注:
    1)XmlSchema-1.0.jar、jakatra commons httpclient/codec只有在Dynamic Client中才需要用。
    2)采用quick start、examples/book中用的service.xml配置方法時(shí),xbean-spring與spring有兼容問(wèn)題,我用1.2.7、2.0M2的spring時(shí),總是報(bào)addPropertyValue(String,Object)之類的異常,換成1.2.6以后一切正常。用examples/spring例子中的配置方法時(shí),沒(méi)有出現(xiàn)這種情況。

    2、quick start、examples/book

    這種做法很簡(jiǎn)單,好象也不太合我的胃口,就沒(méi)仔細(xì)折騰。
    (1)在web.xml中配置一下

     1  <servlet>
     2    <servlet-name>XFireServlet</servlet-name>
     3    <display-name>XFire Servlet</display-name>
     4    <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
     5  </servlet>
     6
     7  <servlet-mapping>
     8    <servlet-name>XFireServlet</servlet-name>
     9    <url-pattern>/servlet/XFireServlet/*</url-pattern>
    10  </servlet-mapping>
    11
    12  <servlet-mapping>
    13    <servlet-name>XFireServlet</servlet-name>
    14    <url-pattern>/services/*</url-pattern>
    15  </servlet-mapping>

    (2)編碼。這個(gè)不用說(shuō),呵呵
    (3)在classpath中,建META-INF/xfire/services.xml配置文件,把剛才做好的webservices配置一下。

    1<beans xmlns="http://xfire.codehaus.org/config/1.0">
    2  <service>
    3    <name>BookService</name>
    4    <namespace>http://xfire.codehaus.org/BookService</namespace>
    5    <serviceClass>org.codehaus.xfire.demo.BookService</serviceClass>
    6  </service>
    7</beans>

    (4)然后就是deploy,訪問(wèn)http://ip:port/webapp name/BookService?WSDL之類的動(dòng)作了。

    3、examples/spring

    xfire和spring勾搭得比較緊密啊,只需要簡(jiǎn)單配置一下,就可以把spring.xml中配置好的bean拿出來(lái)做web services了。
    (1)折騰spring的東西(略)。
    (2)在web.xml中配置一下(注意xfire那一段)

     1    <context-param>
     2        <param-name>contextConfigLocation</param-name>
     3        <param-value>/WEB-INF/applicationContext.xml classpath:org/codehaus/xfire/spring/xfire.xml</param-value>
     4    </context-param>
     5
     6    <listener>
     7        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     8    </listener>
     9
    10    <servlet>
    11        <servlet-name>xfire</servlet-name>
    12        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    13    </servlet>
    14    <servlet-mapping>
    15        <servlet-name>xfire</servlet-name>
    16        <url-pattern>/*</url-pattern>
    17    </servlet-mapping>

    (3)在WEB-INF/xfire-servlet.xml中把spring bean同xfire webservices“關(guān)聯(lián)”起來(lái)。這個(gè)xfire-servlet.xml實(shí)際上就是一個(gè)標(biāo)準(zhǔn)的spring.xml配置文件。

     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    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
     5        <property name="urlMap">
     6            <map>
     7                <entry key="/EchoService" value-ref="echo"/>
     8            </map>
     9        </property>
    10    </bean>
    11    
    12    <bean id="echo" class="org.codehaus.xfire.spring.remoting.XFireExporter">
    13        <property name="serviceFactory" ref="xfire.serviceFactory"/>
    14        <property name="xfire" ref="xfire"/>
    15        <property name="serviceBean" ref="echoBean"/>
    16        <property name="serviceClass" value="org.codehaus.xfire.spring.example.Echo"/>>
    17    </bean>
    18</beans>

    注:第16行,xfire 1.0M6中用serviceInterface,現(xiàn)在改成serviceClass了。

    (4)然后就完工,用http://ip:port/webapp name/xfire/EchoService?WSDL可以看到WSDL內(nèi)容。

    4、客戶端

    按我的惡習(xí),這類事情,肯定是直接開(kāi)vs.net或者C# developer來(lái)顯擺一下了。不得不承認(rèn),.net里面調(diào)web services就是方便啊!
    SNAG-0001.jpg
    至于java做client么,以前一般是用axis來(lái)生成client class,xfire也提供類似的工具,不過(guò)對(duì)于xfire來(lái)說(shuō),最簡(jiǎn)單的辦法就是用Dynamic Client,幾行代碼搞定。

    1    Service serviceModel = new ObjectServiceFactory().create(Echo.class);
    2    Echo service = (Echo) new XFireProxyFactory().create(serviceModel,
    3        "http://localhost:8080/xfire-examples/EchoService");
    4    String result = service.echo("ok");


     

    posted on 2006-03-02 10:47 mmwy 閱讀(11114) 評(píng)論(13)  編輯  收藏 所屬分類: Others

    評(píng)論

    # re: xfire 1.0 終于final了 2006-03-02 14:36 江南白衣
    axis也出axis2.0了,你還有回頭是岸的機(jī)會(huì)呀。
      回復(fù)  更多評(píng)論
      

    # re: xfire 1.0 終于final了 2006-04-21 14:13 hopeshared_lee
    為啥我這樣測(cè)試的結(jié)果是:
    java.lang.VerifyError: (class: org/codehaus/xfire/aegis/type/basic/ObjectType, method: writeSchema signature: (Lorg/jdom/Element;)V) Incompatible argument to function
    at org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry.createDefaultMappings(DefaultTypeMappingRegistry.java:294)
    at org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry.<init>(DefaultTypeMappingRegistry.java:106)
    at org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry.<init>(DefaultTypeMappingRegistry.java:95)
    at org.codehaus.xfire.aegis.AegisBindingProvider.<init>(AegisBindingProvider.java:46)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
    at java.lang.Class.newInstance0(Class.java:308)
    at java.lang.Class.newInstance(Class.java:261)
    at org.codehaus.xfire.service.binding.ObjectServiceFactory.getBindingProvider(ObjectServiceFactory.java:144)
    at org.codehaus.xfire.service.binding.ObjectServiceFactory.getInParameterName(ObjectServiceFactory.java:898)
    at org.codehaus.xfire.service.binding.ObjectServiceFactory.addOperation(ObjectServiceFactory.java:683)
    at org.codehaus.xfire.service.binding.ObjectServiceFactory.initializeOperations(ObjectServiceFactory.java:629)
    at org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectServiceFactory.java:350)
    at org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectServiceFactory.java:277)
    at org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectServiceFactory.java:258)
    at aa.CalculateHandler.getAddServiceResult(CalculateHandler.java:177)
    at aa.CalculateHandler.start(CalculateHandler.java:33)
    at aa.CalculateHandler.calculate(CalculateHandler.java:20)
    at Test.main(Test.java:11)
    Exception in thread "main"


    ?????????  回復(fù)  更多評(píng)論
      

    # re: xfire 1.0 終于final了 2006-05-17 15:23 eureka
    我在瀏覽器里看wsdl,返回下面的東東,誰(shuí)能幫忙

    500 Servlet Exception

    javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory
    not found
    at javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:72)
    at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:176)
    at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:92)
    at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136)
    at org.codehaus.xfire.util.STAXUtils.<clinit>(STAXUtils.java:45)
    at org.codehaus.xfire.util.jdom.StaxBuilder.<init>(StaxBuilder.java:150)
    at org.codehaus.xfire.wsdl11.builder.AbstractWSDL.<clinit>(AbstractWSDL.java:50)
    at org.codehaus.xfire.wsdl11.builder.DefaultWSDLBuilderFactory.createWSDLBuilder(DefaultWSDLBuilderFactory.java:25)
    at org.codehaus.xfire.wsdl11.builder.WSDLBuilderAdapter.write(WSDLBuilderAdapter.java:40)
    at org.codehaus.xfire.DefaultXFire.generateWSDL(DefaultXFire.java:116)
    at org.codehaus.xfire.transport.http.XFireServletController.generateWSDL(XFireServletController.java:302)
    at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:141)
    at org.codehaus.xfire.spring.remoting.XFireServletControllerAdapter.handleRequest(XFireServletControllerAdapter.java:63)
    at org.codehaus.xfire.spring.remoting.XFireExporter.handleRequest(XFireExporter.java:44)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:723)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:663)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:394)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:348)
    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:595)
      回復(fù)  更多評(píng)論
      

    # re: xfire 1.0 終于final了 2006-07-19 17:09 david turing
    hopeshared_lee, jdom版本不正確,download最新的jdom拉
    基本上,我發(fā)現(xiàn)xfire除了快一些,真是一無(wú)是處
    看看他的WS-Security的例子,也太爛了  回復(fù)  更多評(píng)論
      

    # 請(qǐng)問(wèn)怎么開(kāi)發(fā)客戶端阿 2006-10-31 23:50 敵對(duì)
    sldfjs   回復(fù)  更多評(píng)論
      

    # XFIRE CLENT 2006-10-31 23:54 敵對(duì)
    是 不是服務(wù)器端開(kāi)發(fā)完畢以后,輸入命令java org.codehaus.xfire.gen.WsGen -wsdl
    就可以生辰了CLIENT。郁悶好久了,還請(qǐng)你高手幫幫我這個(gè)XFIRE的暈蟲(chóng)  回復(fù)  更多評(píng)論
      

    # re: xfire 1.0 終于final了 2006-11-01 16:36 mmwy
    @敵對(duì)


    我上面有介紹啊,如果是java來(lái)做client,可以象axis一樣,從wsdl來(lái)生成client,也可以用Dynamic Client的辦法來(lái)生成。

    如果是vs.net、C# developer,可以用web references向?qū)?lái)生成client。

    如果是delphi 7/2005/2006,有一個(gè)專門(mén)的wsdl importer可以生成client代碼的。
      回復(fù)  更多評(píng)論
      

    # re: xfire 1.0 終于final了 2006-11-22 11:34 ma
    請(qǐng)問(wèn)我測(cè)試這個(gè)例子為啥就遇到這個(gè)錯(cuò)誤呢
    2006-11-22 10:22:36,734 ERROR [org.codehaus.xfire.handler.DefaultFaultHandler] Fault occurred!
    java.lang.IllegalArgumentException: prefix cannot be "null" when creating a QName
    at javax.xml.namespace.QName.<init>(Unknown Source)
    at com.bea.xml.stream.MXParser.getName(MXParser.java:1439)
    at org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:107)
    at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67)
    at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
    at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)


    wsdl可以正確的看到  回復(fù)  更多評(píng)論
      

    # re: xfire 1.0 終于final了 2006-11-22 11:39 ma
    @ma
    我用的是JBoss4.0.5  回復(fù)  更多評(píng)論
      

    # re: xfire 1.0 終于final了 2007-05-14 11:33 咔咔
    2007-05-14 11:21:59,203 ERROR [org.springframework.web.context.ContextLoader] - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xfire.customEditorConfigurer' defined in ServletContext resource [/WEB-INF/customEditors.xml]: Cannot create inner bean 'org.codehaus.xfire.spring.editors.ServiceFactoryEditor#1022de4' while setting bean property 'customEditors' with key [org.codehaus.xfire.service.ServiceFactory]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.codehaus.xfire.spring.editors.ServiceFactoryEditor#1022de4' defined in ServletContext resource [/WEB-INF/customEditors.xml]: Cannot resolve reference to bean 'xfire.transportManager' while setting bean property 'transportManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xfire.transportManager' defined in ServletContext resource [/WEB-INF/xfire.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamReader
    Caused by:
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.codehaus.xfire.spring.editors.ServiceFactoryEditor#1022de4' defined in ServletContext resource [/WEB-INF/customEditors.xml]: Cannot resolve reference to bean 'xfire.transportManager' while setting bean property 'transportManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xfire.transportManager' defined in ServletContext resource [/WEB-INF/xfire.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamReader
    Caused by:
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xfire.transportManager' defined in ServletContext resource [/WEB-INF/xfire.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamReader
    Caused by:
    java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamReader
    at org.codehaus.xfire.soap.SoapTransportHelper.<clinit>(SoapTransportHelper.java:24)
    at org.codehaus.xfire.transport.local.LocalTransport.<init>(LocalTransport.java:33)
    ……
    我這是怎么回事呀  回復(fù)  更多評(píng)論
      

    # re: xfire 1.0 終于final 2007-08-08 10:48 ooo
    iopioopio  回復(fù)  更多評(píng)論
      

    # re: xfire 1.0 終于final了 2008-08-08 12:22 njwyj
    @eureka
    下載jsr173.jar里面的jsr173_1.0_ri.jar包放到lib里就可以了
      回復(fù)  更多評(píng)論
      

    # 關(guān)于MXParserFactory異常 2009-09-15 21:26 qianyuanyuan
    對(duì)于:javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory
    not found 錯(cuò)誤,我今天剛剛也遇到了。我不是太清楚是怎么回事,但是加入了wstx-asl-3.0.1.jar時(shí),問(wèn)題就不出現(xiàn)了。大家可以試試。  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 国内精品一级毛片免费看| 色拍自拍亚洲综合图区| 日本不卡视频免费| 成人无遮挡裸免费视频在线观看| 日韩免费高清大片在线| 日本免费大黄在线观看| 一级做a爰全过程免费视频| 久久中文字幕免费视频| 免费国产黄网站在线观看视频| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 免费无码黄动漫在线观看| 99re免费99re在线视频手机版| 免费久久人人爽人人爽av| 国产免费久久久久久无码| 久久www免费人成看国产片| 国产JIZZ中国JIZZ免费看| 国产精品免费看久久久香蕉| 中国一级毛片视频免费看| 女人隐私秘视频黄www免费| 中文字幕乱码一区二区免费| 一区二区三区福利视频免费观看| 久久免费线看线看| 亚洲美女视频免费| 岛国片在线免费观看| 人人狠狠综合久久亚洲高清 | 无码午夜成人1000部免费视频| 污视频在线免费观看| 国产va免费精品观看精品| 国产高清免费在线| 中文字幕亚洲乱码熟女一区二区| 亚洲AV无码一区东京热久久| 亚洲欧洲日产v特级毛片| 中文字幕在线观看亚洲日韩| 免费一级成人毛片| 国产一区视频在线免费观看| 亚洲高清最新av网站| 色久悠悠婷婷综合在线亚洲| 亚洲国产精品无码专区影院| 亚洲国产精品白丝在线观看| 亚洲AV成人片无码网站| 好男人资源在线WWW免费|