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

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

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

    隨筆-193  評論-715  文章-1  trackbacks-0

    本Blog所有內(nèi)容不得隨意轉(zhuǎn)載,版權(quán)屬于作者所有。如需轉(zhuǎn)載請與作者聯(lián)系( fastzch@163.com )。
    未經(jīng)許可的轉(zhuǎn)載,本人保留一切法律權(quán)益。
    一直以來,發(fā)現(xiàn)有某些人完全不尊重我的勞動成果,隨意轉(zhuǎn)載,提醒一下那些人小心哪天惹上官司。

    網(wǎng)上關(guān)于XFire入門的教程不少,要么是講得很簡單,就像Hello World一樣的程序,要么就是通過IDE集成的工具來開發(fā)的,這對于不同的人群有諸多不便,關(guān)于XFire的一些詳細(xì)的信息就不再多講,可以參考官方網(wǎng)站和相關(guān)的文檔,這里講一個完整的入門實(shí)例。

    實(shí)例中包括三個情況,我想基本上可以概括所有的需求,或者自己稍加擴(kuò)展即可。先來看看我們的Interface。

     1 package  test;
     2
     3 import  java.util.List;
     4
     5 public   interface  IHelloService  {
     6      public  String sayHello(String ttt);
     7     
     8      public  Course choose(User u);
     9     
    10      public  List  test(List t);
    11 }
    這其中包含了簡單對象的傳遞,對象的傳遞,List的傳遞。

    具體的開發(fā)步驟如下:
    1、定義Web Service的接口,代碼見上面的接口定義。

    2、實(shí)現(xiàn)接口和業(yè)務(wù)邏輯,代碼如下:
     1package test;
     2
     3import java.util.ArrayList;
     4import java.util.List;
     5
     6public class HelloServiceImpl implements IHelloService {
     7
     8    public String sayHello(String ttt) {
     9        return "Hello, "+ttt;
    10    }

    11    
    12    public Course choose(User u){
    13        System.out.println(u.getName());
    14        Course c=new Course();
    15        c.setName("Eee");
    16        return c; 
    17        
    18    }

    19    
    20    public List  test(List t){
    21        for (int i = 0; i < t.size(); i++{
    22            System.out.println((String) t.get(i));
    23        }

    24        List  al=new ArrayList();
    25        Course c=new Course();
    26        c.setName("EeeDDDDDD");
    27        al.add(c);
    28        return al;
    29        
    30    }

    31}
    用到的User和Course兩個類的代碼如下:
     1package test;
     2
     3public class User {
     4    private String name;
     5
     6    public String getName() {
     7        return name;
     8    }

     9
    10    public void setName(String name) {
    11        this.name = name;
    12    }

    13}

    14
     1package test;
     2
     3public class Course  {
     4    private String name;
     5
     6    public String getName() {
     7        return name;
     8    }

     9
    10    public void setName(String name) {
    11        this.name = name;
    12    }

    13
    14}

    3、編寫XFire要求的WebSevice定義描述文件,如下:
     1<?xml version="1.0" encoding="UTF-8"?>
     2<beans xmlns="http://xfire.codehaus.org/config/1.0">
     3
     4    <service>
     5        <name>HelloService</name>
     6        <namespace>http://test/HelloService</namespace>
     7        <serviceClass>test.IHelloService</serviceClass>
     8        <implementationClass>test.HelloServiceImpl</implementationClass>
     9    </service>
    10    
    11</beans>
    此文件放在src/META-INF/xfire/services.xml,編譯時會自動編譯到classes的相應(yīng)目錄下面。

    最近有些朋友因使用Spring2.0以上版本時,會發(fā)生如下異常:
    ERROR - Error initializing XFireServlet.
    org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized xbean element mapping: beans in namespace http:
    //xfire.codehaus.org/config/1.0
    當(dāng)出現(xiàn)如下異常時,請將此文件用如下內(nèi)容替換:
     1<?xml version="1.0" encoding="UTF-8"?>
     2<beans>
     3    <service xmlns="http://xfire.codehaus.org/config/1.0"
     4        xmlns:s="http://www.springframework.org/schema/beans"
     5        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     6        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
     7        <name>HelloService</name>
     8        <namespace>http://test/HelloService</namespace>
     9        <serviceClass>test.IHelloService</serviceClass>
    10        <implementationClass>test.HelloServiceImpl</implementationClass>
    11    </service>
    12</beans>
    13

    4、因為我們用到了List等集合類型,所以需要定義Mapping關(guān)系,文件名為:src/test/IHelloService.aegis.xml,代碼如下:
    1<?xml version="1.0" encoding="UTF-8"?>
    2<mappings>
    3    <mapping>
    4        <method name="test">
    5            <parameter index="0" componentType="java.lang.String" />
    6            <return-type componentType="test.Course" />
    7        </method>
    8    </mapping>
    9</mappings>
    請注意,此文件一定要放到與IHelloService.java相同的目錄下面,否則會出錯。

    5、在Web.xml中配置XFire需要用到的Servlet,代碼如下:
     1<?xml version="1.0" encoding="UTF-8"?>
     2<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
     3    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
     5    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     6
     7    <servlet>
     8        <servlet-name>XFireServlet</servlet-name>
     9        <servlet-class>
    10            org.codehaus.xfire.transport.http.XFireConfigurableServlet
    11        </servlet-class>
    12    </servlet>
    13
    14    <servlet-mapping>
    15        <servlet-name>XFireServlet</servlet-name>
    16        <url-pattern>/servlet/XFireServlet/*</url-pattern>
    17    </servlet-mapping>
    18
    19    <servlet-mapping>
    20        <servlet-name>XFireServlet</servlet-name>
    21        <url-pattern>/services/*</url-pattern>
    22    </servlet-mapping>
    23
    24
    25    <welcome-file-list>
    26        <welcome-file>index.jsp</welcome-file>
    27    </welcome-file-list>
    28</web-app>


    此時Web Service的服務(wù)端就開發(fā)完成了。
    我們來看看客戶端的代碼吧,也很簡單,如下:
     1package test;
     2
     3import java.net.MalformedURLException;
     4import java.util.ArrayList;
     5import java.util.List;
     6
     7import org.codehaus.xfire.XFireFactory;
     8import org.codehaus.xfire.client.XFireProxyFactory;
     9import org.codehaus.xfire.service.Service;
    10import org.codehaus.xfire.service.binding.ObjectServiceFactory;
    11
    12public class Client {
    13
    14    public static void main(String[] args) {
    15
    16        Service srvcModel = new ObjectServiceFactory()
    17                .create(IHelloService.class);
    18        XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
    19                .newInstance().getXFire());
    20
    21        String helloWorldURL = "http://localhost:8080/xfiretest/services/HelloService";
    22        try {
    23            IHelloService srvc = (IHelloService) factory.create(srvcModel,
    24                    helloWorldURL);
    25            System.out.println(srvc.sayHello("Robin"));
    26            
    27            User u=new User();
    28            u.setName("RRRRR");
    29            Course c=srvc.choose(u);
    30            System.out.println(c.getName());
    31            
    32            List  al=new ArrayList();
    33            al.add("1212");
    34            al.add("2222");
    35            List t=srvc.test(al);
    36            for (int i = 0; i < t.size(); i++{
    37                Course co=(Course)t.get(i);
    38                System.out.println(co.getName());
    39            }

    40            
    41            
    42        }
     catch (MalformedURLException e) {
    43            e.printStackTrace();
    44        }

    45
    46    }

    47
    48}

    49

    以上代碼均無注釋,因為都非常簡單,呵呵。如有不清楚的地方,請留言!


    關(guān)于使用XFire開發(fā)Web Service客戶端的方法,可以參考我的另一篇文章《使用XFire開發(fā)Web Service客戶端完整入門教程》。
    posted on 2008-01-03 17:53 Robin's Programming World 閱讀(90497) 評論(130)  編輯  收藏 所屬分類: Java
    評論共2頁: 上一頁 1 2 

    評論:
    # re: XFire完整入門教程 2008-01-03 23:13 | star
    沙發(fā),先頂后看!  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-01-04 09:06 | Robin's Java World
    @star
    謝謝支持!  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-01-04 12:10 | BeanSoft
    代碼行號去掉就好了。不過個人覺得用IDE生成沒什么不好,Java這么多烏七八糟的開源框架,沒IDE那才叫瘋了呢,生活是為了活得輕松嘛,要不然也不至于都用拖拉機(jī)耕地,還沒見哪個人用手耕地。  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-01-04 17:12 | Robin's Java World
    @BeanSoft
    能生成的當(dāng)然很好,不過用IDE生成的話,XFire開發(fā)WS需要JDK5支持,而我們的項目要求我們使用JDK1.4.2,沒辦法,我們不能用生成。
    另外,代碼生成往往會讓我們忽視原理,我比較喜歡知其然,更知其所以然。

    PS:以后貼代碼的時候再不用行號了。謝謝提醒!  回復(fù)  更多評論
      
    # re: XFire完整入門教程[未登錄] 2008-01-09 09:24 | johnny
    我先頂后看,希望樓主上面的代碼,
    不是cope不完整的代碼
    不然我會開罵的,o(∩_∩)o...哈哈  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-01-09 10:39 | 我愛百合
    先回帖再看!
    之前剛在IDE里開發(fā)過,正想怎么手工創(chuàng)建呢?呵呵,謝謝樓主了!
    有問題來問哦!
      回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-01-09 11:25 | 我愛百合
    不出意料,報錯了!!!
    org.codehaus.xfire.XFireRuntimeException: Cannot create mapping for java.util.List, unspecified component .....

    先提兩個有疑問的地方:
    第一、services.xml文件到底放在什么地方?我放在HelloWord/META-INF/xfire下了。
    其中HelloWorld是我的工程名,xfire是我在META-INF下建的一個文件夾。
    第二、IHelloService.aegis.xml文件名就叫這個嗎?我把它放在test包下了,和IHelloService.java在一起
    我哪里寫錯了?  回復(fù)  更多評論
      
    # re: XFire完整入門教程[未登錄] 2008-01-09 16:19 | johnny
    @我愛百合
    你的配置出問題了?
    樓主上面的東東,好像少配置了一個東東。
    我這里有一個我剛寫好的一個程序,如果你需要的話,我可以發(fā)給你
    :-) QQ:786875783  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-01-14 11:21 | netpirate
    pls use MyEclipse!  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-01-17 22:39 | Robin's Java World
    @我愛百合
    services.xml文件放到哪里都可以,但是要保證編譯后能夠在Web工程的Classes目錄的META-INF/xfire目錄下。

    IHelloService.aegis.xml文件放在與IHelloService.java相同的目錄下即可。  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-01-19 15:59 | Robin's Java World
    @netpirate
    If I have not myeclipse, how work?
    And Myeclipse have to use above JDK5.0 .  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-02-15 14:34 | cckey
    那幾個servlet呢。。。。  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-02-21 10:12 | huazxing@163.com
    @我愛百合
    Robin的例子是IHelloService.aegis.xml,如果你是HelloWorld,你的文件名可能是IHelloWorldService.aegis.xml或其他類似名稱,請根據(jù)你的接口名稱命名此文件。

    另外,如果你用的是JDK1.5或以上,可以直接在List中加入具體類型,比如例子中的return type: List<Course>和parameter 0 :List<String>,這樣就不用mapping了
    具體可以參考XFire 最新生火指南(上):
    http://wiki.springside.org.cn/display/springside/XFire
    2.3 配置Java-XML Binding

    @Robin
    感謝樓主的完整講解  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-02-23 23:55 | Robin's Java World
    @huazxing@163.com
    感謝你的熱情回答!
      回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-02-28 11:01 | milo
    請問下面的異常是由什么到導(dǎo)致的。

    - No beans defined in application context [org.codehaus.xfire.transport.http.XFireConfigurableServlet$GenericWebApplicationContextX;hashCode=2254042]
    - Commons Collections 3.x available
    - Unable to locate MessageSource with name 'messageSource': using default [org.springframework.context.support.DelegatingMessageSource@1586cbd]
    - Unable to locate ApplicationEventMulticaster with name 'applicationEventMulticaster': using default [org.springframework.context.event.SimpleApplicationEventMulticaster@15ad1da]
    - Unable to locate ThemeSource with name 'themeSource': using default [org.springframework.ui.context.support.ResourceBundleThemeSource@18bbb61]
    - Pre-instantiating singletons in factory [org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans []; root of BeanFactory hierarchy]
    - Error initializing XFireServlet.
    java.lang.SecurityException: class "org.springframework.core.AttributeAccessorSupport"'s signer information does not match signer information of other classes in the same package
    at java.lang.ClassLoader.checkCerts(ClassLoader.java:775)
    at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1812)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:866)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1319)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at org.apache.xbean.spring.context.impl.XBeanHelper.createBeanDefinitionReader(XBeanHelper.java:36)
    at org.codehaus.xfire.spring.XFireConfigLoader.getXFireApplicationContext(XFireConfigLoader.java:74)
    at org.codehaus.xfire.spring.XFireConfigLoader.loadContext(XFireConfigLoader.java:41)
    at org.codehaus.xfire.transport.http.XFireConfigurableServlet.loadConfig(XFireConfigurableServlet.java:86)
    at org.codehaus.xfire.transport.http.XFireConfigurableServlet.createXFire(XFireConfigurableServlet.java:54)
    at org.codehaus.xfire.transport.http.XFireServlet.init(XFireServlet.java:45)
    at javax.servlet.GenericServlet.init(GenericServlet.java:211)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3917)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4201)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
      回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-02-28 16:36 | Robin's Java World
    @milo
    你是不是做了Spring的整合?
    No beans defined in application context
    根據(jù)這句的提示,應(yīng)該是說你用到了某一個bean,但是并沒有在Spring中定義。
      回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-02-28 18:23 | milo
    我應(yīng)該沒有使用到Spring,我開始懷疑XFire的庫和其他的庫有沖突,于是我就把我沒用到的庫都刪掉了,可是異常更多了。  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-02-28 22:18 | milo
    robin謝謝了。問題已經(jīng)解決,是第三方的jar有沖突了:dom4j中的jaxen與XFire中的jaxen包沖突了!  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-03-06 17:12 | passenger
    webservice 一定要開發(fā)一個客戶端程序嗎?如果這樣,則需在每個客戶機(jī)上安裝一個客戶程序豈不很麻煩?  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-03-19 14:38 | Robin's Java World
    @passenger
    不好意思,說句不太客氣的話,你可能需要更多應(yīng)用軟件架構(gòu)與部署的更多知識,也需要更好的理解C/S,B/S的更多相關(guān)知識。
    通常,是否需要在客戶機(jī)上裝一個客戶程序是取決于你是用C/S還是用B/S模式的。當(dāng)然,你也可以把任何與Web Service交互的機(jī)器當(dāng)作是客戶端,這樣的話,那就是每個機(jī)器上都要裝客戶端程序了。  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-03-23 22:51 | yame
    我完全按照上面的完整教程做下來,服務(wù)器端部署服務(wù)都正常,客房歒代碼運(yùn)行出現(xiàn)如下錯誤,請問這是什么原因?
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/httpclient/Credentials
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.getConstructor(Unknown Source)
    at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:108)
    at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
    at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
    at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
    at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
    at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
    at org.codehaus.xfire.client.Client.invoke(Client.java:336)
    at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
    at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
    at $Proxy0.sayHello(Unknown Source)
    at client.Client.main(Client.java:25)  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-03-24 01:55 | Robin's Java World
    @yame
    根據(jù)你貼上來的Log來看,是屬于沒有找到Credentials這個類所致。
    通常出現(xiàn)這樣的錯誤有兩種情況:
    1,沒有依賴的包,或者包不在classpath下
    2,包沖突
    請根據(jù)具體情況來判斷,檢查環(huán)境配置是否正確。  回復(fù)  更多評論
      
    # re: XFire完整入門教程[未登錄] 2008-03-24 08:57 | zym
    使用xfire做webservice,在瀏覽器中可以訪問到wsdl,用MyEclipse的Web Service Explore 調(diào)用服務(wù)出現(xiàn)如下錯誤,請教大概是什么原因?qū)е碌模?
    [ERROR] http-8888-Processor24 2008-03-24 08:55:02,062 org.codehaus.xfire.handler.DefaultFaultHandler - Fault occurred!
    java.lang.IllegalArgumentException: object is not an instance of declaring class
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.codehaus.xfire.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:54)
    at org.codehaus.xfire.service.invoker.ObjectInvoker.invoke(ObjectInvoker.java:45)
    at org.codehaus.xfire.service.binding.ServiceInvocationHandler.sendMessage(ServiceInvocationHandler.java:271)
    at org.codehaus.xfire.service.binding.ServiceInvocationHandler$1.run(ServiceInvocationHandler.java:84)
    at org.codehaus.xfire.service.binding.ServiceInvocationHandler.execute(ServiceInvocationHandler.java:132)
    at org.codehaus.xfire.service.binding.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:107)
    at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
    at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
    at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
    at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:301)
    at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:130)
    at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Unknown Source)  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-03-24 17:13 | wudayin
    xfire生成的服務(wù)默認(rèn)是不是使用SOAP1.1報文?
    如何配置才能讓xfire生成的服務(wù)使用SOAP1.2報文的設(shè)置內(nèi)容?  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-03-30 16:23 | Robin's Java World
    @wudayin
    xfire默認(rèn)是采用SOAP1.1的報文。
    如果你想使用SOAP1.2的報文的話,可以采用bindings標(biāo)簽來進(jìn)行設(shè)置。
    也可以與Spring結(jié)合來進(jìn)行配置,相關(guān)的配置你可以參考官方文檔。  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-03-30 16:24 | Robin's Java World
    @zym
    出現(xiàn)你這樣問題的原因應(yīng)該是包的配置不對,或者是程序中有哪里沒有按文章中所說的來。懷疑是你客戶端所傳對象不正確之類。  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-07-22 16:47 | ponpon
    你好,我是用MyEclipse來開發(fā)的,請問用webservice怎么樣從客戶端傳遞List參數(shù)給服務(wù)器端嗎(在另外一個JavaProject工程里面)?
    比如我在服務(wù)器上的函數(shù)是public String getList(List list){},其中這List裝的對象是User對象,我用MyEclipse生成客戶端時自動生成了一個ArrayOfUser類,調(diào)用service.getList(),時里面提示要的參數(shù)不是List型,而是ArrayOfUser型 ,該怎么封裝一下呢?謝謝
    望回信:javapon@163.com  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-07-23 15:17 | Robin's Java World
    @ponpon
    在另一個工程里面要傳List<User>這樣的參數(shù),你可以把服務(wù)端的User對象打包過來。然后import這個對象即可呀。  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-07-30 23:26 | young
    蠻不錯的文章.對于像我們這樣初學(xué)WEB SERVICES的.
    有2個疑問請教一下:
    1.像客戶端的話明顯是不知道User和Course結(jié)構(gòu)的,一般的做法是怎么樣讓客戶端去知道User和Course結(jié)構(gòu)的?

    2.如果Course或User也是要調(diào)用服務(wù)端進(jìn)行實(shí)現(xiàn)的話,又該如何處理?  回復(fù)  更多評論
      
    # re: XFire完整入門教程 2008-07-31 15:48 | Robin's Java World
    @young
    回答你的兩個問題:
    1,客戶端很明顯是可以通過WSDL來知道User,Course等對象的結(jié)構(gòu)的。比如,你用一些工具來生成客戶端時,可以自動生成這些對象。
    2,Course,User等對象客戶端有定義,所以不存在你說的問題。  回復(fù)  更多評論
      
    評論共2頁: 上一頁 1 2 
    主站蜘蛛池模板: 亚洲av色香蕉一区二区三区| 亚洲人成电影亚洲人成9999网| 亚洲中文字幕AV每天更新| 亚洲最大免费视频网| 亚洲精品国产啊女成拍色拍| a拍拍男女免费看全片| 亚洲女人18毛片水真多| 亚洲高清中文字幕免费| xxx毛茸茸的亚洲| 日韩精品免费一区二区三区| 亚洲国产精品精华液| 一本色道久久88亚洲综合 | 免费人成视频在线观看不卡| 亚洲AV永久无码精品网站在线观看 | 亚洲AV无码专区亚洲AV桃| 日本二区免费一片黄2019| 黄页视频在线观看免费| 亚洲午夜日韩高清一区 | 久久一本岛在免费线观看2020| 午夜影视日本亚洲欧洲精品一区| 东方aⅴ免费观看久久av| 亚洲午夜免费视频| 希望影院高清免费观看视频| 亚洲hairy多毛pics大全| 日韩精品成人亚洲专区| 嫩草在线视频www免费看| 亚洲福利视频一区二区三区| 青青久在线视频免费观看| 亚洲av无码专区在线观看下载| 亚洲乱码中文字幕手机在线 | 一个人看www在线高清免费看| 亚洲成在人线在线播放无码| 亚洲午夜av影院| 96免费精品视频在线观看| 中国亚洲呦女专区| 亚洲国产精品尤物YW在线观看| 性xxxx视频免费播放直播| 亚洲精品中文字幕| 亚洲AV无码乱码在线观看裸奔 | 亚洲国产精品自产在线播放| 精品一区二区三区免费毛片爱|