⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jaxmorderserviceclient.java

📁 21天精通Java,这是一本英文书
💻 JAVA
字号:
import java.util.Iterator;

import webservices.LineItem;
import webservices.Order;
import webservices.Receipt;

import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;

import javax.xml.messaging.URLEndpoint;

public class JAXMOrderServiceClient
{
  public static void main(String [] args)
  {
  
    try
    {
        MessageFactory messageFactory = MessageFactory.newInstance();
        SOAPMessage message = messageFactory.createMessage();

        SOAPPart part = message.getSOAPPart();
        SOAPEnvelope envelope = part.getEnvelope();
        
        Order order = new Order("Bargain Buys", "Bury New Road, Manchester");
        order.addLineItem(new LineItem("Levi 501", 200));
        order.addLineItem(new LineItem("Wibble 1000 mp3 player", 33));
        order.addLineItem(new LineItem("Sony Playstation", 10));

        order.marshal(envelope);
        
        SOAPConnectionFactory connectionFactory = SOAPConnectionFactory.newInstance();
        SOAPConnection connection = connectionFactory.createConnection();

        URLEndpoint endPoint = new URLEndpoint("http://localhost:8080/JAXMOrderService/order");
        
        SOAPMessage msg = connection.call(message, endPoint);
        SOAPPart p = msg.getSOAPPart();
        SOAPEnvelope env = p.getEnvelope();
        SOAPBody body = env.getBody();
        
        Receipt receipt = new Receipt();
        
        Name receiptName = envelope.createName("receipt",
                                               "acme",
                                               "http://acme.com/commerce");

        Iterator iterator = body.getChildElements(receiptName);
    
        if (iterator.hasNext())
        {
          SOAPBodyElement element = (SOAPBodyElement)iterator.next();
          receipt.unmarshal(element, env);
          
          System.out.println("Got receipt for order\n\tName:\t\t" + receipt.getName() +
                              "\n\tAddress:\t" + receipt.getAddress() +
                              "\n\tNumber of items:\t" + receipt.getNumItems() +
                              "\n\tCost:\t\t" + receipt.getCost());
        }
        else
        {
          throw new SOAPException("receipt SOAPElement is missing from SOAP body");
        }
    }
    catch (SOAPException ex)
    {
      System.err.println("Exception: " + ex);
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -