booktitlesservlet.java

来自「java web services how to program」· Java 代码 · 共 96 行

JAVA
96
字号
// Fig. 11.4: BookTitlesServlet.java.// Class BookTitlesServlet exposes the Book Titles Web service.package com.deitel.jws1.jaxm.servlet;// Java core packagesimport java.sql.*;// Java extension packagesimport javax.servlet.*;import javax.xml.messaging.*;import javax.xml.soap.*;// Deitel packagesimport com.deitel.jws1.services.BookTitlesImpl;public class BookTitlesServlet extends JAXMServlet    implements ReqRespListener {   // factory used to create SOAPMessages   private MessageFactory messageFactory;   // reference to object that provides Web service   private BookTitlesImpl service;   // initialize BookTitlesServlet   public void init( ServletConfig config )       throws ServletException   {      super.init( config );      // instantiate Web-service object and obtain MessageFactory      try {         service = new BookTitlesImpl();         messageFactory = MessageFactory.newInstance();      }      // handle exception in creating MessageFactory      catch ( SOAPException soapException ) {         soapException.printStackTrace();      }   } // end method init   // container invokes this method upon receiving SOAP message   public SOAPMessage onMessage( SOAPMessage soapMessage )   {      // invoke Web service and return results as SOAP message      try {         String bookTitles[] = null;         // invoke Book Titles Web service to obtain titles         if ( service != null )            bookTitles = service.getBookTitles();         // store results as SOAP message and return to client         if ( bookTitles != null ) {            // create empty SOAP message            SOAPMessage message = messageFactory.createMessage();            // obtain references to envelope and body of message            SOAPPart soapPart = message.getSOAPPart();            SOAPEnvelope soapEnvelope = soapPart.getEnvelope();            SOAPBody soapBody = soapEnvelope.getBody();            // create titles element to store book titles            SOAPBodyElement titlesElement =                soapBody.addBodyElement(                   soapEnvelope.createName( "titles" ) );            // store number of book titles as attribute            titlesElement.addAttribute(                soapEnvelope.createName( "bookCount" ),                  Integer.toString( bookTitles.length ) );            // store each book title in title element            for ( int i = 0; i < bookTitles.length; i++ )               titlesElement.addChildElement(                   soapEnvelope.createName(                      "title" ) ).addTextNode( bookTitles[ i ] );            return message;         }         else            return null;      }      // handle exception if unable to create SOAP message      catch ( SOAPException soapException ) {         return null;      }   } // end method onMessage} // end class BookTitlesServlet

⌨️ 快捷键说明

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