<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

    受白衣同志的當,上了xfire的賊船,拋棄了axis,嗚!

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

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

    1、jar包

    同以往一樣,xfire user guide中的Dependency Guide.html還是說得不明不白,除了讓人發暈,沒有太大的實際意義。

    SNAG-0000.jpg

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

    2、quick start、examples/book

    這種做法很簡單,好象也不太合我的胃口,就沒仔細折騰。
    (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)編碼。這個不用說,呵呵
    (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,訪問http://ip:port/webapp name/BookService?WSDL之類的動作了。

    3、examples/spring

    xfire和spring勾搭得比較緊密啊,只需要簡單配置一下,就可以把spring.xml中配置好的bean拿出來做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“關聯”起來。這個xfire-servlet.xml實際上就是一個標準的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,現在改成serviceClass了。

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

    4、客戶端

    按我的惡習,這類事情,肯定是直接開vs.net或者C# developer來顯擺一下了。不得不承認,.net里面調web services就是方便啊!
    SNAG-0001.jpg
    至于java做client么,以前一般是用axis來生成client class,xfire也提供類似的工具,不過對于xfire來說,最簡單的辦法就是用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 閱讀(11113) 評論(13)  編輯  收藏 所屬分類: Others

    評論

    # re: xfire 1.0 終于final了 2006-03-02 14:36 江南白衣
    axis也出axis2.0了,你還有回頭是岸的機會呀。
      回復  更多評論
      

    # re: xfire 1.0 終于final了 2006-04-21 14:13 hopeshared_lee
    為啥我這樣測試的結果是:
    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"


    ?????????  回復  更多評論
      

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

    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)
      回復  更多評論
      

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

    # 請問怎么開發客戶端阿 2006-10-31 23:50 敵對
    sldfjs   回復  更多評論
      

    # XFIRE CLENT 2006-10-31 23:54 敵對
    是 不是服務器端開發完畢以后,輸入命令java org.codehaus.xfire.gen.WsGen -wsdl
    就可以生辰了CLIENT。郁悶好久了,還請你高手幫幫我這個XFIRE的暈蟲  回復  更多評論
      

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


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

    如果是vs.net、C# developer,可以用web references向導來生成client。

    如果是delphi 7/2005/2006,有一個專門的wsdl importer可以生成client代碼的。
      回復  更多評論
      

    # re: xfire 1.0 終于final了 2006-11-22 11:34 ma
    請問我測試這個例子為啥就遇到這個錯誤呢
    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可以正確的看到  回復  更多評論
      

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

    # 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)
    ……
    我這是怎么回事呀  回復  更多評論
      

    # re: xfire 1.0 終于final 2007-08-08 10:48 ooo
    iopioopio  回復  更多評論
      

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

    # 關于MXParserFactory異常 2009-09-15 21:26 qianyuanyuan
    對于:javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory
    not found 錯誤,我今天剛剛也遇到了。我不是太清楚是怎么回事,但是加入了wstx-asl-3.0.1.jar時,問題就不出現了。大家可以試試。  回復  更多評論
      

    主站蜘蛛池模板: 成年轻人网站色免费看| 亚洲AV无码国产丝袜在线观看| 免费大片av手机看片| 亚洲成色www久久网站夜月| 日韩版码免费福利视频| 深夜a级毛片免费视频| 日韩精品亚洲人成在线观看| 黄a大片av永久免费| 成人性生交大片免费看好| 91在线亚洲综合在线| 国产av无码专区亚洲av果冻传媒| 无码乱肉视频免费大全合集| 一级成人a免费视频| 亚洲AV综合色区无码二区爱AV| 亚洲国产专区一区| 亚色九九九全国免费视频| 久久久精品国产亚洲成人满18免费网站| 亚洲手机中文字幕| 亚洲色成人中文字幕网站| 精品国产免费观看久久久| 久久精品免费电影| 特级毛片在线大全免费播放| 亚洲六月丁香婷婷综合| 亚洲乱码国产乱码精品精| 四虎影视永久免费视频观看| 四虎在线免费视频| 99re8这里有精品热视频免费| 亚洲av无码专区在线观看下载| 亚洲高清资源在线观看| 国产综合亚洲专区在线| 国产免费小视频在线观看| 中文字幕无码免费久久99| 免费黄网站在线观看| yy一级毛片免费视频| 立即播放免费毛片一级| 亚洲成年网站在线观看| 亚洲国产精品一区二区久| 亚洲丁香色婷婷综合欲色啪| 亚洲午夜久久久影院伊人 | 免费A级毛片在线播放不收费| 男女免费观看在线爽爽爽视频|