EJB容器模型的WebService服务
---WEB服务
--使用ANT 编译发布
-->发布后 进入 jboss 后台控制 查看 发布的服务
http://localhost:8989/jbossws --> View a list of deployed services
-->点击 Endpoint Addresshttp://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 包 和 类
---然后 testpackage 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 {@Testpublic void getUserName() {//通过 发布的 服务对象bean 和 端口 来得到 服务接口类 //和 JAVA中 接口的实例化 需要 通过实现类来 初始化 OrderServiceBean serice=new OrderServiceBean();//接口 OrderService orderService=serice.getOrderServicePort();//调用方法System.out.println(orderService.getUserName("西游降魔"));}@Testpublic void getOrder() {OrderServiceBean serice=new OrderServiceBean();OrderService orderService=serice.getOrderServicePort();Order order =orderService.getOrder("999");System.out.println(order.getOrderid()+"\"+order.getName());}@Testpublic 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 中的方法了