📄 booktitlesservlet.java
字号:
// 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -