`
c_cyclone
  • 浏览: 16048 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

jboss4.0中webservice应用

    博客分类:
  • java
阅读更多
1. 安装Jboss

2. 将webservice endpoint当成servlet

3. 写一个远端的interface

4. 在eclipse中配置一个external tool:wscompile

4. 写一个config.xml, 然后用JWSDP的JAXRPC中的wscompile生成mapping.xml和wsdl

5. 必须存在4个文件:web.xml,webservices.xml,mapping.xml和.wsdl

6. webservices 中的port name 要和.wsdl中的一致

7. 使用lomboz或jbossIDE deploy



详细实例:


1. create a class


package service;



public class Hello {

public boolean helloDancy(String hello){

System.out.println(hello);

return true;

}


}


2. create corresponding remote interface


package remote;


import java.rmi.Remote;

import java.rmi.RemoteException;


public interface HelloRemote extends Remote {

public boolean helloDancy(String hello) throws RemoteException;

}


3. create web.xml in WEB-INF folder


< ?xml version="1.0" encoding="UTF-8"? >

< web-app version="2.4"

xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

< servlet >

< servlet-name >helloServlet< /servlet-name >

< servlet-class >service.Hello< /servlet-class >

< /servlet >

< servlet-mapping >

< servlet-name >helloServlet< /servlet-name >

< url-pattern >/hello< /url-pattern >

< /servlet-mapping >

< /web-app >


4. create config.xml


< ?xml version="1.0" encoding="UTF-8"? >

< configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config" >

< service name="helloservice"

targetNamespace="/hello"

typeNamespace="/hello/types"

packageName="service" >

< interface name="remote.HelloRemote" / >

< /service >

< /configuration >


5. create folder wsdl in WEB-INF/ and run wscompile from jaxrpc folder in sun's jwsdp1.5 package


wscompile -cp output/classes -gen:server -f:documentliteral -mapping jaxrpc-mapping.xml -keep config.xml


-keep: keep the generated source file


6. After executing wscompile.bat, a mapping.xml and helloservice.wsdl are generated


7. create webservice.xml


< ?xml version="1.0" encoding="UTF-8"? >


< webservices xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd" version="1.1" >


< webservice-description >

< webservice-description-name >hello world< /webservice-description-name >

< wsdl-file >WEB-INF/wsdl/helloservice.wsdl< /wsdl-file >

< jaxrpc-mapping-file >WEB-INF/mapping.xml< /jaxrpc-mapping-file >

< port-component >

< port-component-name >hello-dancy< /port-component-name >

< wsdl-port >HelloRemotePort< /wsdl-port >

< service-endpoint-interface >remote.HelloRemote< /service-endpoint-interface >

< service-impl-bean >

< servlet-link >helloServlet< /servlet-link >

< /service-impl-bean >

< /port-component >

< /webservice-description >

< /webservices >


8. create hello.war and deploy it to jboss4.0.1


9. create test client


public void testHelloDancy() {

try{

String urlstr = "http://w20251-01:8080/hellows/hello?wsdl";


java.net.URL url = new java.net.URL(urlstr);


String ns = "/hello";

QName qname = new QName(ns, "Helloservice");

QName port = new QName(ns, "HelloRemotePort");

QName operation = new QName(ns, "helloDancy");


Service service = new Service();

Call call = (Call)service.createCall();


call.setTargetEndpointAddress( url );

call.setOperationName( operation );

call.addParameter( "String_1", XMLType.XSD_BASE64, ParameterMode.IN);


call.setReturnType( XMLType.XSD_BOOLEAN);

Boolean ret = (Boolean)call.invoke(new Object[]{"hello, Dancy".getBytes()});


} catch(Exception e){

e.printStackTrace();

}



}


10. set the classpath to lead to jars in axis's lib folder


11. customized object which involve byte[] as the input parameter

client code:


public void testHelloDancy() {

try{

String urlstr = "http://w20251-01:8080/hellows/hello?wsdl";


java.net.URL url = new java.net.URL(urlstr);


String ns = "/hello";

QName qname = new QName(ns, "Helloservice");

QName port = new QName(ns, "HelloRemotePort");

QName operation = new QName(ns, "helloDancy");


Service service = new Service();

Call call = (Call)service.createCall();

QName qn = new QName( "/hello/types", "Dto" ); //refer to .wsdd

call.registerTypeMapping(service.Dto.class, qn,

new org.apache.axis.encoding.ser.BeanSerializerFactory(service.Dto.class, qn),

new org.apache.axis.encoding.ser.BeanDeserializerFactory(service.Dto.class, qn));


call.setTargetEndpointAddress( url );

call.setOperationName( operation );

call.addParameter( "arg0", qn, ParameterMode.IN);


call.setReturnType( XMLType.XSD_BOOLEAN);

service.Dto dto = new Dto();

dto.setParam("hello, Dancy".getBytes());

Boolean ret = (Boolean)call.invoke(new Object[]{dto});


} catch(Exception e){

e.printStackTrace();

}

分享到:
评论

相关推荐

    Jboss 4.0 the official guide 标准教材

    《JBoss 4.0 The Official Guide》是JBoss应用服务器使用的一本权威指南,针对的是4.0版本,这是JBoss的一个重要...结合CHM电子书和配套源代码,读者将能够深入理解JBoss 4.0的工作原理,并掌握其在实际项目中的应用。

    JBoss 4.0

    - **JBoss中的Web服务**:教程演示了如何在JBoss 4.0上将Duke银行应用转换为Web服务,并提供了运行Web服务客户端的方法。 - **网络状况分析**:通过网络状况分析,用户可以了解Web服务的请求和响应情况,这对于调试...

    JBoss4.0中文版.pdf

    【JBoss4.0中文版.pdf】是一本详细介绍JBoss应用服务器4.0版本的中文教程,涵盖了从基础到高级的各类主题,旨在帮助读者快速掌握JBoss的使用和管理。该书的主要内容可能包括以下几个方面: 1. **JBoss简介**:JBoss...

    JBoss4.0实例参考PDF格式

    8. **热部署与热更新**:JBoss 4.0支持在不中断服务的情况下更新应用,这是开发过程中非常实用的功能。 9. **日志与调试**:了解如何配置和使用JBoss的日志系统,以及如何进行服务器的故障排查和性能优化。 10. **...

    JBOSS4.0 Start Guide (PDF)

    JBoss 4.0 是一款开源的应用服务器,它基于Java EE(Enterprise Edition)规范,提供了一个用于部署和管理Java应用程序的平台。本指南将深入探讨JBoss 4.0的核心特性和启动流程,帮助开发者和系统管理员更好地理解和...

    Jboss4.0开发者手册

    An Introduction to JMX Jboss Class Loading and Types 讲述了Jboss所使用的技术和配置,是学习Jboss机制的不错资料

    在Jboss4.0下对MySql数据源的设置方法

    在JBoss 4.0环境下配置MySQL数据源的步骤涉及多个环节,主要是为了确保JBoss应用服务器能够正确地连接和操作MySQL数据库。以下是对每个步骤的详细解释: **步骤一:添加MySQL JDBC驱动** 首先,你需要获取适用于...

    MyEclipse_JBoss4.0开发EJB组件环境配置(入门调试级)

    本教程将详细介绍如何在MyEclipse中配置和调试EJB组件,以便在JBoss 4.0上运行。 ### 一、MyEclipse EJB项目创建 1. **启动MyEclipse**:打开MyEclipse,选择“File” &gt; “New” &gt; “Dynamic Web Project”,在弹...

    \Linux下配置JBoss自动启动(JBoss V4.0)

    在Linux环境中,JBoss作为一款广泛使用的应用服务器,在企业级开发中扮演着重要角色。为了提高系统的稳定性和可用性,通常会将JBoss配置为开机自启动服务。本文将详细介绍如何在Linux环境下将JBoss 4.0版本配置为...

    使用eclipse通过jboss开发简单的ejb应用(jboss7.x & ejb3.x)

    在本文中,我们将深入探讨如何使用Eclipse IDE与JBoss应用程序服务器(版本7.x)来开发和部署一个基于EJB 3.x的简单企业级Java应用程序。EJB(Enterprise JavaBeans)是Java平台上的核心组件,它提供了一种标准的...

    jdk6 jboss5 webservice bug

    标题 "jdk6 jboss5 webservice bug" 暗示了这是一个关于Java开发环境中,具体是JDK 6和JBoss Application Server 5版本中Web服务(Webservice)出现的问题。这个问题可能是由于某些兼容性、配置错误或者已知的bug...

    jboss-4.0.5.GA.zip

    1. **Java EE 5支持**:JBoss 4.0.x系列是基于Java EE 5标准的,提供了诸如EJB 3.0、JPA(Java Persistence API)、JSF(JavaServer Faces)、JMS(Java Message Service)等组件的支持,使得开发企业级应用变得更加...

    jboss4开发指南

    - **版本背景**:JBoss4.0.x是基于JBoss3.2.x开发而来,继承了后者在企业级应用中的稳定性,并在此基础上进行了功能增强和技术升级。 - **J2EE1.4认证**:JBoss4.0.x获得了J2EE1.4认证,意味着它支持最新的Java企业...

    jboss-4.0.2.zip

    本文将详细解析"jboss-4.0.2.zip"这一版本的JBoss应用服务器,深入探讨其核心功能、配置、部署以及在企业级应用中的重要性。 1. **JBoss概述** JBoss是Red Hat公司的一个产品,最初由JBoss社区开发。JBoss 4.0.2是...

    JBoss中文文档

    JBoss 4.0.x系列通过了J2EE 1.4认证,其核心代码源自JBoss 3.2.x系列,这使得它在企业级应用中更为强大。JBoss 5.x版本则标志着自JBoss 3.x以来的最大架构变化,采用了基于POJO的微内核设计,并且兼容Java EE 5规范...

    JBoss4 Guide 中文

    JBoss4.0.x系列通过J2EE1.4认证,意味着它满足了企业级应用的严格标准,包括高性能、高可用性和安全性。它的基代码源自成熟的JBoss3.2.x系列,经过优化和增强,更适合大规模企业级应用的部署。 **5. JBoss5.x: 架构...

    JBossWatchDog for JBoss 4.0.X-开源

    JBossWatchdog 是 JBoss 4.0.X 的 J2EE 应用程序。 它包含一个用于配置的简单 Web 组件和将 MBean 选定属性记录到 log4j appender 的定时 SessionBean。 如果存在部署/运行时问题,请请求支持。

    在jboss上部署web应用

    在JBoss中部署应用程序相当直观,只需要将部署单元复制到对应的部署目录(例如server/default/deploy)。JBoss会持续监控该目录,一旦发现新文件,就会自动进行部署。部署的文件可以是EJB JARs、Web应用WARs、企业...

Global site tag (gtag.js) - Google Analytics