- 浏览: 1572835 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
---WEB服务
使用无状态会话 将其 发布为 webService 下面没有配置数据源,使用的是模拟数据
导入 E:\jboss-6.0.0.Final\client 下的jar
实体bean
OrderService.java
OrderServiceBean.java
--使用ANT 编译发布
-->发布后 进入 jboss 后台控制 查看 发布的服务
http://localhost:8989/jbossws --> View a list of deployed services
-->点击 Endpoint Address http://localhost:8989/WebService/OrderServiceBean/OrderService
进入后我们可以看到
targetNamespace="http://ws.sh.cn" //命名空间
<wsdl:service name="OrderServiceBean"> //服务名称 def: //OrderServiceBeanService
<wsdl:portType name="OrderService"> //端口名称 def: OrderServiceBean
如果后面 def(默认命名) 看不的不是很习惯呢 就可以通过上面的
@WebService(targetNamespace="http://ws.sh.cn",//namespace
name="OrderService", //protype name
serviceName="OrderServiceBean" //Service Name
) 这个注解中加入属性配置就 可以了
--- 开发ws客户端应用
--准备jar 和jdk 的版本
如果使用的JDK 中使用JAX_WS 版本 低于 我们引用的jax_ws 的jar 需要在
JDK_HOME/jre/lib/endorsed(新建) \ 加入 jaxws-api.jar 和 jaxb-api.jar
如果使用myeclipse 就需要修改myclipse 使用的JDK 为系统中安装的JDK
2.使用web-service客户端工具生成辅助类 (Ant配置生成)
3.借助辅助类 调用 web service
1.导入 下载的 jax-ws \lib\*.jar
2.编写 ant配置文件 生存 辅助类
--Ant ---build.xml
-->编译运行 (在大纲视图找那个 outline中)
//http://localhost:8989/WebService/OrderServiceBean/OrderService?wsdl 为jboss 控制后我们已经发布的 WEBservice 服务路径
就是 点击
http://localhost:8989/WebService/OrderServiceBean/OrderService 后 浏览器中的地址
然后刷新 项目 就可以看到 自动生成的 com.sh.ws.client 包 和 类
---然后 test
这样就可以调用 webservice 中的方法了
WEB服务市一种分布式技术,它与EJB最大的不同是,WEB服务属于行业规范,可以跨平台及语言.而EJB属于java平台规范.理论上可以跨平台,但是实现起来比较复杂.所以其应用范围局限了java平台.看上去是竞争关系,其实不是 WEB服务:偏重这个系统对外提供什么功能. EJB :偏重如何使用这个组件组装这些功能. JavaEE 为web service 提供了两种不同的编程模型. EJB容器模型 web容器模型 下面用最新的JAX-WS 2.2.7 (JAVA API for XML-base WEB Service )来介绍EJB 容器模型的 webservice开发
使用无状态会话 将其 发布为 webService 下面没有配置数据源,使用的是模拟数据
导入 E:\jboss-6.0.0.Final\client 下的jar
实体bean
package com.sh.bean; import java.io.Serializable; public class Order implements Serializable{ private static final long serialVersionUID = 7401607038300453322L; private String orderid; private String name; public String getOrderid() { return orderid; } public void setOrderid(String orderid) { this.orderid = orderid; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
OrderService.java
package com.sh.service; import java.util.List; import com.sh.bean.Order; public interface OrderService { public String getUserName(String name); public Order getOrder(String orderid); public List<Order> getOrders(); }
OrderServiceBean.java
package com.sh.service.impl; import java.util.ArrayList; import java.util.List; import javax.ejb.Remote; import javax.ejb.Stateless; import javax.jws.WebMethod; import javax.jws.WebService; import com.sh.bean.Order; import com.sh.service.OrderService; //发布为 webservice 服务 @WebService(targetNamespace="http://ws.sh.cn",//namespace name="OrderService", //protype name serviceName="OrderServiceBean" //Service Name ) @Stateless @Remote(OrderService.class) public class OrderServiceBean implements OrderService { //@WebMethod //标注后 会将此方法 暴露给webservice @Override public String getUserName(String name) { // TODO Auto-generated method stub return name; } @Override public Order getOrder(String orderid) { Order order =new Order(); order.setOrderid(orderid); order.setName("小燕子"); return order; } @Override public List<Order> getOrders() { // TODO Auto-generated method stub List<Order> person=new ArrayList<Order>(); Order order1 =new Order(); order1.setOrderid("001"); order1.setName("小2"); Order order2 =new Order(); order2.setOrderid("002"); order2.setName("小3"); person.add(order1); person.add(order2); return person; } }
--使用ANT 编译发布
<?xml version="1.0" encoding="UTF-8"?> <!-- ====================================================================== 2013-2-25 下午1:53:33 project description Bin ====================================================================== --> <project name="WebService" basedir="."> <description> description </description> <!-- 设置项目原目录 --> <property name="src.dir" value="${basedir}\src" /> <!-- 获取环境变量 --> <property environment="env"/> <property name="jboss.home" value="${env.JBOSS_HOME}"/> <property name="jboss.server.config" value="default"/> <property name="build.dir" value="${basedir}\build"/> <!-- 引入 jboss client 下的 所有jar --> <path id="build.classpath"> <fileset dir="${jboss.home}\client"> <include name="*.jar"/> </fileset> <!-- 讲编译过后的路径加入到 path中去 方便 接口和实现的引用 --> <pathelement location="${build.dir}"/> </path> <target name="prepare" description="创建build目录"> <delete dir="${build.dir}"/> <mkdir dir="${build.dir}"/> </target> <!-- - - - - - - - - - - - - - - - - - target: compile - - - - - - - - - - - - - - - - - --> <target name="compile" depends="prepare" description="编译"> <javac srcdir="${src.dir}" destdir="${build.dir}" includeantruntime="false" includes="com/**"> <classpath refid="build.classpath"/> </javac> </target> <!-- ================================= target: ejbjar ================================= --> <target name="ejbjar" depends="compile" description="创建EJB发布包"> <jar jarfile="${basedir}\${ant.project.name}.jar"> <fileset dir="${build.dir}"> <include name="**/*.class"/> </fileset> </jar> </target> <!-- ================================= target: deploy ================================= --> <target name="deploy" depends="ejbjar" description="发布EJB"> <copy file="${basedir}\${ant.project.name}.jar" todir="${jboss.home}\server\${jboss.server.config}\deploy"/> </target> <!-- - - - - - - - - - - - - - - - - - target: undeploy - - - - - - - - - - - - - - - - - --> <target name="undeploy" description="卸载EJB"> <delete file="${jboss.home}\server\${jboss.server.config}\deploy\${ant.project.name}.jar"/> </target> </project>
-->发布后 进入 jboss 后台控制 查看 发布的服务
http://localhost:8989/jbossws --> View a list of deployed services
-->点击 Endpoint Address http://localhost:8989/WebService/OrderServiceBean/OrderService
进入后我们可以看到
targetNamespace="http://ws.sh.cn" //命名空间
<wsdl:service name="OrderServiceBean"> //服务名称 def: //OrderServiceBeanService
<wsdl:portType name="OrderService"> //端口名称 def: OrderServiceBean
如果后面 def(默认命名) 看不的不是很习惯呢 就可以通过上面的
@WebService(targetNamespace="http://ws.sh.cn",//namespace
name="OrderService", //protype name
serviceName="OrderServiceBean" //Service Name
) 这个注解中加入属性配置就 可以了
--- 开发ws客户端应用
--准备jar 和jdk 的版本
如果使用的JDK 中使用JAX_WS 版本 低于 我们引用的jax_ws 的jar 需要在
JDK_HOME/jre/lib/endorsed(新建) \ 加入 jaxws-api.jar 和 jaxb-api.jar
如果使用myeclipse 就需要修改myclipse 使用的JDK 为系统中安装的JDK
2.使用web-service客户端工具生成辅助类 (Ant配置生成)
3.借助辅助类 调用 web service
1.导入 下载的 jax-ws \lib\*.jar
2.编写 ant配置文件 生存 辅助类
--Ant ---build.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="WSClient" 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 wsdl="http://localhost:8989/WebService/OrderServiceBean/OrderService?wsdl" sourcedestdir="${src.dir}" package="com.sh.ws.client" keep="true" verbose="true" destdir="${basedir}/bin" xendorsed="true"/> </target> </project>
-->编译运行 (在大纲视图找那个 outline中)
//http://localhost:8989/WebService/OrderServiceBean/OrderService?wsdl 为jboss 控制后我们已经发布的 WEBservice 服务路径
就是 点击
http://localhost:8989/WebService/OrderServiceBean/OrderService 后 浏览器中的地址
然后刷新 项目 就可以看到 自动生成的 com.sh.ws.client 包 和 类
---然后 test
package junit.test; import java.util.List; import org.junit.BeforeClass; import org.junit.Test; import com.sh.ws.client.Order; import com.sh.ws.client.OrderService; import com.sh.ws.client.OrderServiceBean; public class WSTest { @Test public void getUserName() { //通过 发布的 服务对象bean 和 端口 来得到 服务接口类 //和 JAVA中 接口的实例化 需要 通过实现类来 初始化 OrderServiceBean serice=new OrderServiceBean(); //接口 OrderService orderService=serice.getOrderServicePort(); //调用方法 System.out.println(orderService.getUserName("西游降魔")); } @Test public void getOrder() { OrderServiceBean serice=new OrderServiceBean(); OrderService orderService=serice.getOrderServicePort(); Order order =orderService.getOrder("999"); System.out.println(order.getOrderid()+"\\"+order.getName()); } @Test public void getOrders() { OrderServiceBean serice=new OrderServiceBean(); OrderService orderService=serice.getOrderServicePort(); List<Order> orders=orderService.getOrders(); for (Order order2 : orders) { System.out.println(order2.getOrderid()+"\\"+order2.getName()); } } }
这样就可以调用 webservice 中的方法了
发表评论
-
AXIS2 的安装和使用
2013-03-11 21:14 1677安装 配置 AXIS2 然后 生成 客户端代码 1.下载Ax ... -
WebService 之 EJB容器模型
2013-02-27 23:24 6---WEB服务 WEB服务市一种分布式技术,它与EJB最 ... -
Entity Bean的开发 和 Jboss 数据源的配置
2013-02-27 21:23 2836//-------------- 实体bean 的 ... -
EJB 消息驱动bean 的开发
2013-02-27 21:19 1810//-----------------------JMS ... -
EJB 会话bean and Jboss JNDI
2013-02-25 23:53 2314下面案例使用的环境 myeclipse.10.1 j ... -
tomcat,jboss,jetty,weblogic 编码设置
2012-09-07 01:48 1867tomcat //在server.xml中 <Co ...
相关推荐
NULL 博文链接:https://1028826685.iteye.com/blog/1503446
EJB和WEBservice
ejb的简单webservice实例 适合初学
主要讲述EJB容器的实现方式,以及自己学习过程中做的学习笔记
EJB&Webservice
NULL 博文链接:https://8366.iteye.com/blog/440338
JavaEE5学习笔记09-将EJB发布成WebService总结。
NULL 博文链接:https://lc2586.iteye.com/blog/720918
详细的讲述了,在EJB容器中如果完成对bean的管理
介绍了ejb的安全机制,以及提出一种安全的基于jaas的架构
JEE架构与程序设计EJB容器服务图文.pptx
NULL 博文链接:https://wangcheng.iteye.com/blog/370091
EJB_WebService 教师用书源码
J2EE相关概念及其体系层次结构 EJB相关概念及其分类 JBuilder和Weblogic开发会话Bean JBuilder和Weblogic开发实体Bean 会话Bean和实体Bean开发J2EE应用 不同的解析器解析XML文件 JBuilder和...
NULL 博文链接:https://jingliankui123.iteye.com/blog/668972
EJB的真实世界模型
EJB定义以及相关用途,EJB服务器端组件模型