zoukankan      html  css  js  c++  java
  • jboss上的soap web service开发示例

    以下示例,由jboss quickstart示例代码得来:

    一、创建一个常规的dynamic web项目,建议支持maven ,项目的关键属性参考下图:

    二、定义服务接口及参数对象

    HelloWorldService

     1 package org.jboss.as.quickstarts.wshelloworld;
     2 
     3 import java.util.List;
     4 
     5 import javax.jws.WebMethod;
     6 import javax.jws.WebService;
     7 
     8 
     9 
    10 @WebService(targetNamespace = "http://www.jboss.org/jbossas/quickstarts/wshelloworld/HelloWorld")
    11 public interface HelloWorldService {
    12 
    13 
    14     @WebMethod
    15     public String sayHello();
    16 
    17 
    18     @WebMethod
    19     public String sayHelloToName(String name);
    20 
    21 
    22     @WebMethod
    23     public String sayHelloToNames(List<String> names);
    24 }
    HelloWorldService

    OrderService

     1 package org.jboss.as.quickstarts.wshelloworld;
     2 
     3 import java.util.List;
     4 
     5 import javax.jws.WebMethod;
     6 import javax.jws.WebService;
     7 
     8 import org.jboss.as.quickstarts.wshelloworld.model.Order;
     9 import org.jboss.as.quickstarts.wshelloworld.model.Product;
    10 
    11 @WebService(targetNamespace = "http://www.jboss.org/jbossas/quickstarts/wshelloworld/Order")
    12 public interface OrderService {
    13 
    14     @WebMethod
    15     Order orderProduct(List<Product> products);
    16 
    17 }
    OrderService

    Product

     1 package org.jboss.as.quickstarts.wshelloworld.model;
     2 
     3 import java.io.Serializable;
     4 
     5 public class Product implements Serializable {
     6 
     7     private static final long serialVersionUID = -2823691181671902736L;
     8     
     9     private String productName;
    10 
    11     public String getProductName() {
    12         return productName;
    13     }
    14 
    15     public void setProductName(String productName) {
    16         this.productName = productName;
    17     }
    18     
    19     public double getAmount() {
    20         return amount;
    21     }
    22 
    23     public void setAmount(double amount) {
    24         this.amount = amount;
    25     }
    26 
    27     private double amount;
    28     
    29     
    30 
    31 }
    Product

    Order

     1 package org.jboss.as.quickstarts.wshelloworld.model;
     2 
     3 import java.io.Serializable;
     4 import java.util.List;
     5 
     6 public class Order implements Serializable {
     7 
     8     private static final long serialVersionUID = 5377627580623153289L;
     9 
    10     private List<Product> products;
    11 
    12     public List<Product> getProducts() {
    13         return products;
    14     }
    15 
    16     public void setProducts(List<Product> products) {
    17         this.products = products;
    18     }
    19 
    20     public double getAmount() {
    21         return amount;
    22     }
    23 
    24     public void setAmount(double amount) {
    25         this.amount = amount;
    26     }
    27 
    28     public String getOrderNo() {
    29         return orderNo;
    30     }
    31 
    32     public void setOrderNo(String orderNo) {
    33         this.orderNo = orderNo;
    34     }
    35 
    36     private double amount;
    37     private String orderNo;
    38 
    39 }
    Order

    三、服务接口实现

    HelloWorldServiceImpl

     1 package org.jboss.as.quickstarts.wshelloworld;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 import javax.jws.WebService;
     7 
     8 @WebService(serviceName = "HelloWorldService", portName = "HelloWorld", name = "HelloWorld", endpointInterface = "org.jboss.as.quickstarts.wshelloworld.HelloWorldService", targetNamespace = "http://www.jboss.org/jbossas/quickstarts/wshelloworld/HelloWorld")
     9 public class HelloWorldServiceImpl implements HelloWorldService {
    10 
    11     @Override
    12     public String sayHello() {
    13         return "Hello World!";
    14     }
    15 
    16     @Override
    17     public String sayHelloToName(final String name) {
    18         final List<String> names = new ArrayList<String>();
    19         names.add(name);
    20 
    21         return sayHelloToNames(names);
    22     }
    23 
    24     @Override
    25     public String sayHelloToNames(final List<String> names) {
    26         return "Hello " + createNameListString(names);
    27     }
    28 
    29     private String createNameListString(final List<String> names) {
    30 
    31         if (names == null || names.isEmpty()) {
    32             return "Anonymous!";
    33         }
    34 
    35         final StringBuilder nameBuilder = new StringBuilder();
    36         for (int i = 0; i < names.size(); i++) {
    37 
    38             if (i != 0 && i != names.size() - 1)
    39                 nameBuilder.append(", ");
    40             else if (i != 0 && i == names.size() - 1)
    41                 nameBuilder.append(" & ");
    42 
    43             nameBuilder.append(names.get(i));
    44         }
    45 
    46         nameBuilder.append("!");
    47 
    48         return nameBuilder.toString();
    49     }
    50 }
    HelloWorldServiceImpl

    OrderServiceImpl

     1 package org.jboss.as.quickstarts.wshelloworld;
     2 
     3 import java.text.SimpleDateFormat;
     4 import java.util.ArrayList;
     5 import java.util.Calendar;
     6 import java.util.Date;
     7 import java.util.List;
     8 
     9 import javax.enterprise.inject.New;
    10 import javax.jws.WebService;
    11 import javax.lang.model.element.VariableElement;
    12 
    13 import org.jboss.as.quickstarts.wshelloworld.model.Order;
    14 import org.jboss.as.quickstarts.wshelloworld.model.Product;
    15 
    16 @WebService(serviceName = "OrderService", portName = "Order", name = "Order", endpointInterface = "org.jboss.as.quickstarts.wshelloworld.OrderService", targetNamespace = "http://www.jboss.org/jbossas/quickstarts/wshelloworld/Order")
    17 public class OrderServiceImpl implements OrderService {
    18 
    19     @Override
    20     public Order orderProduct(List<Product> products) {
    21         Order order = new Order();
    22         order.setProducts(products);
    23 
    24         double sum = 0;
    25         for (Product p : products) {
    26             sum += p.getAmount();
    27 
    28         }
    29 
    30         String orderNo = new SimpleDateFormat("yyMMddHHmmssSSS")
    31                 .format(Calendar.getInstance().getTime());
    32 
    33         order.setAmount(sum);
    34         order.setOrderNo(orderNo);
    35         return order;
    36     }
    37 
    38 }
    OrderServiceImpl

    四、配置web.xml (可选)

     1 <?xml version="1.0"?>
     2 
     3 <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
     6     <servlet>
     7         <servlet-name>HelloWorldService</servlet-name>
     8         <servlet-class>org.jboss.as.quickstarts.wshelloworld.HelloWorldServiceImpl</servlet-class>
     9     </servlet>
    10     <servlet-mapping>
    11         <servlet-name>HelloWorldService</servlet-name>
    12         <url-pattern>/HelloWorld/*</url-pattern>
    13     </servlet-mapping>
    14 
    15     <servlet>
    16         <servlet-name>OrderService</servlet-name>
    17         <servlet-class>org.jboss.as.quickstarts.wshelloworld.OrderServiceImpl</servlet-class>
    18     </servlet>
    19     <servlet-mapping>
    20         <servlet-name>OrderService</servlet-name>
    21         <url-pattern>/Order/*</url-pattern>
    22     </servlet-mapping>
    23 </web-app>
    web.xml

    该文件开发时,位置于src/main/webapp/WEB-INF下,配置web.xml的主要作用是给WebService指定显示的别名以及访问时的url路径,这是可选步骤

    五、部署到Jboss

    部署完成后,可在jboss管理面板中看到这二个web service

    六、客户端程序验证(c#版)

    可用任何语言调用java web service验证,下面是c#版的示例代码:

     1 using System;
     2 using java_ws_client.java.hello;
     3 using java_ws_client.java.order;
     4 
     5 namespace java_ws_client
     6 {
     7     class Program
     8     {
     9         static void Main(string[] args)
    10         {
    11             Console.WriteLine("hello world service is testing...");
    12 
    13             using (HelloWorldServiceClient client = new HelloWorldServiceClient())
    14             {
    15                 var msg = client.sayHelloToName("jimmy");
    16                 Console.WriteLine(msg);
    17             }
    18 
    19             Console.WriteLine("
    order service is testing...");
    20 
    21             using (OrderServiceClient client = new OrderServiceClient())
    22             {
    23                 var order = client.orderProduct(new product[] { new product() { productName = "book", amount = 2 }, new product() { productName = "iphone", amount = 3 } });
    24 
    25                 Console.WriteLine(String.Format("orderNo:{0},amount:{1},product:{2}", order.orderNo, order.amount, order.products.Length));
    26             }
    27 
    28             Console.ReadKey();
    29         }
    30     }
    31 }
    java ws client (c#)

    服务端演示源码:helloworld-ws.zip


     

  • 相关阅读:
    win7网络共享原来如此简单,WiFi共享精灵开启半天都弱爆了!
    JQUERY UI Datepicker Demo
    Official online document, install svn server in centOS
    JAVE not work in linux
    AMR 转mp3 失败
    XD, XR, DR 股票
    Linux 下MySql 重置密码
    Difinition Of Done
    Apache, Tomcat, JK Configuration Example
    Linux 安装tomcat
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/jboss-webservice-sample.html
Copyright © 2011-2022 走看看