知识大全 在JBoss4.2及JBoss5.0上部署jax-ws 2.0/2.1 Web

Posted

篇首语:最是人间留不住,朱颜辞镜花辞树。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在JBoss4.2及JBoss5.0上部署jax-ws 2.0/2.1 Web相关的知识,希望对你有一定的参考价值。

在JBoss4.2及JBoss5.0上部署jax-ws 2.0/2.1 Web  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  最近试着将POJO web service打包成war部署到JBoss上(同样的war部署在Glassfish上运行良好) 下面是小结

  一 部署jax ws  /  POJO Web Service到JBoss GA

   必须为你的POJO Web Service定义一个Servlet 并定义service的endpoint         这意味着必须修改/增加两个文件 WEB INF/web xml WEB INF/sun jaxws xml (附文后)

   最好将所需的jax ws jars放到WEN INF/lib里 免得将这些jar拷贝来拷贝去        本人曾试了半天 拷来拷去 反正是搞不定 最后还是一古脑儿索性全放到WEB INF/lib里 倒是爽快:

   WEB INF/lib/jaxws rt jarWEB INF/lib/jaxws tools jarWEB INF/lib/log j jarWEB INF/lib/saaj api jarWEB INF/lib/saaj impl jarWEB INF/lib/sjsxp jarWEB INF/lib/stax ex jarWEB INF/lib/streambuffer jarWEB INF/lib/sxalan jar

  别问我到底哪个是哪个 都是干什么的

  二 部署jax ws  /  POJO Web Service到JBoss GA

  好像是去年 JBoss 面世了 根据其Release Note 它是 the final release of the JBoss   series for the Java EE&# ;  codebase that fully plies with the Java EE   conformance testing certification requirements 但本人的试验结果却是大失所望 如果将我们的web service打包成war部署到JBoss  上 根本就不工作 问题多去了 为什么同样的war部署在Glassfish上就运行良好呢?果真是 fully plies with the Java EE    ?看起来并不那么 fully

  JBoss GA的server classloader搜寻路径发生了一点变化 根据其Release Note的 指示 : When running under Java   you need to manually copy the following libraries from the JBOSS_HOME/client directory to the JBOSS_HOME/lib/endorsed directory  so that the JAX WS   apis supported by JBossWS are used: 

   jbossws native saaj jar jbossws native jaxrpc jar jbossws native jaxws jar jbossws native jaxws ext jar 

  这个也无济于事

  最终 还得像部署在JBoss GA上一样进行部署

  总结         1 将jax ws  /  POJO web service部署得到JBoss / 是一样费劲的         2 基本上需要两步 一是要定义WEB INF/web xml 和 WEB INF/sun jaxws xml 二是要将所需的相关的 ws libs 放到war的本地classpath上         3 还发现一个怪现象 @WebService attribute 是否附值与附哪些值 JBoss与 Glassfish所由此产生的wsdl内容很不相同 这有点儿头痛

  Why JBoss then? 答案是我儿子的口头禅 我也不知道!

  附上相关文件

  code

    service interface: VodOptService  package  vodws service opt;import javax jws WebMethod;import javax jws WebParam;import javax jws WebResult;import javax jws WebService;import javax jws soap SOAPBinding;import  vodws service GetPersonRequest;import  vodws service GetPersonResponse;@WebService@SOAPBinding(     style = SOAPBinding Style DOCUMENT      use = SOAPBinding Use LITERAL      parameterStyle=SOAPBinding ParameterStyle BARE)public interface VodOptService     @WebMethod  @WebResult( name= getPersonResponse               targetNamespace=               partName= getPersonResponse  )  public GetPersonResponse getPerson( @WebParam(name= getPersonRequest                                                  targetNamespace=                                                  partName= getPersonRequest  )                                      GetPersonRequest request);  service implementation: VodOptServiceImp 

  package  vodws service opt;import java util ArrayList;import javax jws WebService;import  apache log j Logger;import  vodws service GetPersonRequest;import  vodws service GetPersonResponse;import  vodws service Person;import  vodws service ServiceResponse ServiceMessage;@WebService(serviceName= optsvs  endpointInterface= vodws service opt VodOptService )public class VodOptServiceImp implements VodOptService     private static final Logger log = Logger getLogger(VodOptServiceImp class);  private static final String MSISDN =  ;    public GetPersonResponse getPerson(GetPersonRequest request)         GetPersonResponse response = new GetPersonResponse();        if(request == null)       log error( john  service request is null );            ServiceMessage Message msg = new ServiceMessage Message();      msg setContent( Sorry  request is null );      msg setLevel( ERROR );            ArrayList<ServiceMessage Message> msglist = new ArrayList<ServiceMessage Message>();      msglist add(msg);      ServiceMessage error = new ServiceMessage();      error getMessages() addAll(msglist);            response setServiceMessage(error);            return response;            String msisdn = request getMsisdn();    log debug( Getting person for msisdn:   + msisdn);        Person person = new Person();    person setFirstName( jason );    person setLastName( wang );    person setMsisdn(MSISDN);        response setPerson(person);        return response;  

    WEB INF/web xml  <?xml version=  encoding= UTF ?><!  servlet   jsp    ><web app xmlns:xsi= instance     xmlns=      xmlns:web= app_ _ xsd      xsi:schemaLocation= ;     app_ _ xsd  id= WebApp_ID      version= >        <display name>vodws</display name>  <description>vodws</description>    <!  jwang   : necessary if deploying to JBoss  x  not required for Glassfish    >  <listener>    <listener class>         sun xml ws transport     </listener class>   </listener>    <servlet>    <description>vod opt web service</description>      <display name>vod opt web service</display name>    <servlet name>VodOptService</servlet name>    <servlet class> sun xml ws transport ;/servlet class>    <load on startup> </load on startup>  </servlet>    <servlet mapping>     <servlet name>VodOptService</servlet name>     <url pattern>/optsvs</url pattern>  </servlet mapping>  <!  othe web xml content ></web app>  WEB INF/sun jaxws xml  <?xml version=  encoding= UTF ?><!  jwang  : this file is required if deploying to JBoss x  not required for Glassfish    ><endpoints    xmlns= ws/ri/runtime     version= >        <endpoint        name= VodOptService         implementation= vodws service opt VodOptServiceImp         service= VodOptService         port= VodOptService         url pattern= /optsvs  /></endpoints>

code cha138/Article/program/Java/ky/201311/28616

相关参考

知识大全 在AIX 5L上快速部署Oracle

在AIX5L上快速部署Oracle  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  环境准备   

美国海军计划今年夏天在一艘现役军舰上部署并测试首个__激光武器系统,并将于两年内测试一种舰载电磁轨道炮。舆论认为

美国海军计划今年夏天在一艘现役军舰上部署并测试首个_____激光武器系统,并将于两年内测试一种舰载电磁轨道炮。舆论认为,这将从根本上改变美国海军的作战方式。A、气态B、液态C、固态D、混合体答案:C

知识大全 OPENBSD-3.8上快速部署apache+mysql+php+ssl[3]

OPENBSD-3.8上快速部署apache+mysql+php+ssl[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,

知识大全 OPENBSD-3.8上快速部署apache+mysql+php+ssl[2]

OPENBSD-3.8上快速部署apache+mysql+php+ssl[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,

知识大全 OPENBSD-3.8上快速部署apache+mysql+php+ssl[1]

OPENBSD-3.8上快速部署apache+mysql+php+ssl[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,

知识大全 tomcat中部署java项目

  在Tomcat中部署JavaWeb应用程序有两种方式静态部署和动态部署在下文中$CATALINA_HOME指的是Tomcat根目录  一静态部署  静态部署指的是我们在服务器启动之前部署我们的程序

假如该公文中有“鉴于当前的洪灾形势,县委县政府特转发A市人民政府办公室关于抗洪抢险的指示,兼之部署本县各乡镇抗洪任务及灾

假如该公文中有“鉴于当前的洪灾形势,县委县政府特转发A市人民政府办公室关于抗洪抢险的指示,兼之部署本县各乡镇抗洪任务及灾后生产生活具体工作”一句,其中用词妥当的一项是_____。A、鉴于B、县委县政府

公安部部署,自8月15日起,在全国开展为期两个月的严厉整治酒后驾驶交通违法行为专项行动。10月,公安部再次部署,继续严厉

公安部部署,自8月15日起,在全国开展为期两个月的严厉整治酒后驾驶交通违法行为专项行动。10月,公安部再次部署,继续严厉整治酒后驾驶交通违法行为。各地交管部门针对高发区域和高发时段,高密度部署勤务,提

为研究和完善国家法定节假日制度,国家有关部门按照国务院的部署,通过有关网站进行问卷调查,并在部分城市进行了电话调查。在广

为研究和完善国家法定节假日制度,国家有关部门按照国务院的部署,通过有关网站进行问卷调查,并在部分城市进行了电话调查。在广泛进行民意调查的基础上,经过一年多的研究论证,确定了新的节假日调整方案,这体现了

知识大全 在PowerBuilder11中部署SmartClient应用[3]

在PowerBuilder11中部署SmartClient应用[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快