首页 > 其他分享 >EJB3.0容器模型的WEB服务-WebService

EJB3.0容器模型的WEB服务-WebService

时间:2023-04-27 18:01:24浏览次数:46  
标签:EJB3.0 WEB WebService public new order order2 Order String


使用JBoss、EJB3.0、开发WebService和客户端:
1、 首先我们先建立Webservice:

第一步:首先建立一个普通的Java项目并且导入G:\javaEEServers\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\client下的所有*.jar文件
第二步:建立EJB Bean接口如下:

public interface OrderService { 

 public String getUserName(String name); 

 public Order getOrder(String orderid); 

 public List<Order> getOrders(); 

}


第三步:建立实现这个EJB Bean接口实现类

@Stateless //这里指定Bean的会话状态 

@Remote(OrderService.class)//远程接口 

//修改WebService中的一些属性方法如下 

@WebService(targetNamespace="htttp://www.liyong.com"//名字空间 

 ,name="OrderService"//portType 的name 

 ,serviceName="OrderServiceBean")//修改服务的名称 

public class OrderServiceBean implements OrderService { 



 //需要把某个方法发布为Webservice在其前面加上@WebMethod其他没有加的默认不发布问Webservice方法 


 @Override 

 public Order getOrder(String orderid) { 

 //这里只是模拟数据,可从数据库中得到数据 

 Order order=new Order(); 

 order.setOrderid(orderid); 

 order.setName("小李"); 

 return order; 

 } 


 @Override 

 public List<Order> getOrders() { 

 List<Order> orders=new ArrayList<Order>(); 


 Order order1=new Order(); 

 order1.setOrderid("111"); 

 order1.setName("小张"); 

 Order order2=new Order(); 

 order2.setOrderid("222"); 

 order2.setName("小王"); 


 orders.add(order1); 

 orders.add(order2); 

 return orders; 


 } 

 @Override 

 public String getUserName(String name) { 


 return name; 

 } 


}


第四步:使用ANT来编译、发布我们的EJB Bean build.xml

<?xml version="1.0"?> 


<!-- ======================================================================= --> 

<!-- EJB3 HelloWorld build file --> 

<!-- ======================================================================= --> 


<project name="WebService" default="ejbjar" basedir="."> 


 <property environment="env" /> 

 <property name="app.dir" value="${basedir}" /> 

 <property name="src.dir" value="${app.dir}" /> 

 <property name="jboss.home" value="${env.JBOSS_HOME}" /> 

 <property name="jboss.server.config" value="default" /> 

 <property name="build.dir" value="${app.dir}\build" /> 

 <property name="build.classes.dir" value="${build.dir}\classes" /> 


 <!-- Build classpath --> 

 <path id="build.classpath"> 

 <fileset dir="${jboss.home}\client"> 

 <include name="*.jar" /> 

 </fileset> 

 <pathelement location="${build.classes.dir}" /> 

 </path> 


 <!-- =================================================================== --> 

 <!-- Prepares the build directory --> 

 <!-- =================================================================== --> 

 <target name="prepare" depends="clean"> 

 <mkdir dir="${build.dir}" /> 

 <mkdir dir="${build.classes.dir}" /> 

 </target> 


 <!-- =================================================================== --> 

 <!-- Compiles the source code --> 

 <!-- =================================================================== --> 

 <target name="compile" depends="prepare" description="编绎"> 

 <javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="on" deprecation="on" optimize="off" includes="com/**"> 

 <classpath refid="build.classpath" /> 

 </javac> 

 </target> 


 <target name="ejbjar" depends="compile" description="创建EJB发布包"> 

 <jar jarfile="${app.dir}\HelloWorld.jar"> 

 <fileset dir="${build.classes.dir}"> 

 <include name="com/**/*.class" /> 

 </fileset> 

 </jar> 

 </target> 


 <target name="deploy" depends="ejbjar"> 

 <copy file="${app.dir}\HelloWorld.jar" todir="${jboss.home}\server\${jboss.server.config}\deploy" /> 

 </target> 


 <!-- =================================================================== --> 

 <!-- Cleans up generated stuff --> 

 <!-- =================================================================== --> 

 <target name="clean"> 

 <delete dir="${build.dir}" /> 

 <delete file="${jboss.home}\server\${jboss.server.config}\deploy\HelloWorld.jar" /> 

 </target> 


</project>



第五步:发布我们的EJB Bean --->之前开启JBoss服务

第六步:编写我们的WebServiceClient
我们使用wsimport工具的Ant任务类生成辅助类 build.xml

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

<project name="WebServiceClient" default="wsclientgen" basedir="."> 

 <property name="src.dir" value="${basedir}/src" /> 

 <path id="build.classpath" description="设置类路径"> 

 <fileset dir="${basedir}/lib"> 

 <include name="*.jar"/> 

 </fileset> 

 </path> 


 <target name="wsclientgen" description="生成webservice客户端辅助代码,执行后请刷新项目"> 

 <taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport" classpathref="build.classpath"/> 

 <wsimport 

//这里的"http://...."可以再JBoss客户端得到 

//http://localhost:8080/jbossws/services 

wsdl="http://127.0.0.1:8080/HelloWorld/OrderServiceBean?wsdl" 

 sourcedestdir="${src.dir}" package="com.foshanshop.ws.client" keep="true" 

 verbose="true" destdir="${basedir}/bin"/> 

 </target> 

</project>


第七步:编译生成辅助类 这是可以看到我们的Src目录中生成了许多文件
第八步:
我们编写单元测试来调用Webservice的代码

public class Test { 


 @BeforeClass 

 public static void setUpBeforeClass() throws Exception { 

 } 


 @org.junit.Test 

 public void getOrder() 

 { 

 OrderServiceBean orderServiceBean =new OrderServiceBean(); 

 OrderService order=orderServiceBean.getOrderServicePort(); 

 Order order2=order.getOrder("333"); 

 System.out.println(order2.getOrderid()+order2.getName()); 

 } 


}

标签:EJB3.0,WEB,WebService,public,new,order,order2,Order,String
From: https://blog.51cto.com/u_16091571/6231962

相关文章

  • 前端学习笔记--主流web框架
    主流的web框架1.Django框架 大而全,自带的功能组件非常多!类似航空母舰 2.flask框架 小而精,自身的功能组件非常少!类似游骑兵 第三方模块多,也受限于第三方模块 ps:三行代码就可以启动一个flask后端服务 3.tornado框架 异步非阻塞 速度非常快,可以用于开发游戏服务器4.其......
  • Oracle WebLogic多个组件漏洞风险提示
    漏洞概述近日,WebRAY安全服务产品线监测到Oracle官方发布了安全更新,本次共发布了包含WebLogic在内的433个产品的安全补丁程序,其中CVE-2023-21912、CVE-2023-21996、CVE-2023-21964、CVE-2023-21931、CVE-2023-21979等较为严重。WebLogic是美国Oracle公司出品的一个applicationserve......
  • asp.net c# webform 三层架构,bll,dal,model,dbcommon
    BLL:业务层相当于struts里的action,控制业务逻辑Model:数据实体,相当于struts里的bean,持久化数据的,有set,getDAL:数据层,用来拼凑sql语句DBCommon:与数据库打交道的层,用来CRUD连接数据库等这是我今天学三层了,做了个三层的登陆例子的总结经验,我对三层......
  • gitlab webhook 403
    Jenkins关闭跨站请求伪造保护(CSRF)保护那我们如何关闭跨站请求伪造保护呢: 一、使用容器运行的Jenkins方法一:进入容器,找到/usr/local/bin/jenkins.sh,在该文件中的execjava-Duser.home="$JENKINS_HOME"${FUTURE_OPTS}"${java_opts_array[@]}"-jar${JENKINS_WAR}"${jenkin......
  • web: pdf_converter | DASCTF Apr.2023 X SU战队2023开局之战
    题目内容这道题是给源码的,是个thinkphp项目,可以直接看看控制器就一个pdf方法,用了dompdf库,然后把用户传入的content写到pdf中。既然这么明显,那就搜索dompdf漏洞知识点首先看到:https://ghostasky.github.io/2022/03/19/dompdf/首先看到这里说,如果传入自定义的c......
  • Go Web学习笔记--处理表单的输入
    通过一个注册的示例来演示如何通过Go语言来处理表单的输入。首先,创建一个简单的html文件,代码如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><formaction="/log......
  • spacy缺少en_core_web_sm等语言包的问题
    1.先看spacy版本2.在线下载太慢,直接去github下载本地包加载:https://github.com/explosion/spacy-models/releases注意版本号要对应3.pipinstall刚才的包问题解决 后续:en就是en_core_web_sm的老名字,代码太老是这样的 ......
  • EJB3.0之HelloWorld
    开发工具:javaee版本的eclipse、JDK1.6、jboss5.0.0注意:jboss的路径不能有中文,否则会报错。新建ejb工程,选择jboss5和ejb3代码:packagecom.ejb;publicinterfaceHelloWorld{ publicStringsayHello(Stringname);}packagecom.ejb;importjavax.ejb.Remote;importjavax.e......
  • websphere6.1开发、部署、远程调用EJB2.0
    开发工具是IBMRAD7.5.4。WAS版本6.1。EJB版本2.0。开发过程如图:新建完后,工程结构如下:再新建SessionBean下一步完成。如图:修改几个文件:packagecom.ejb;importstaticjava.lang.System.out;/***BeanimplementationclassforEnterpriseBean:HelloSession*/publicc......
  • weblogic eclipse 运行web应用程序
    开始-所有程序- OracleEnterprisePackforEclipse- OracleEnterprisePackforEclipse打开集成了的eclipse,配置weblogic服务器然后创建web应用程序,用weblogic运行就可以访问了。端口7001,例如http://127.0.0.1:7001/web/......