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

📄 mtomsampleservlet.java

📁 关于字符串的转换,格式方面的转换程序,可以用来在程序中的转换
💻 JAVA
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */package org.apache.axis2.jaxws.samples.servlet;import org.apache.axis2.jaxws.samples.client.mtom.SampleMTOMTests;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.DataInputStream;import java.io.FileOutputStream;import java.io.IOException;/** * Servlet implementation class for Servlet: MTOMSampleServlet * <p/> * web.servlet * name="MTOMSampleServlet" * display-name="MTOMSampleServlet" * description="Provides a servlet interface to the MTOM Service Sample" * <p/> * web.servlet-mapping * url-pattern="/MTOMSampleServlet" */public class MTOMSampleServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {    private static final long serialVersionUID = 1039362106123493799L;    private static final String INDEX_JSP_LOCATION = "/WEB-INF/jsp/demoMTOM.jsp";    private String uriString = "";    private String soapString = "";    private String fileName = "";    public MTOMSampleServlet() {        super();    }    protected void doGet(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException {        processRequest(req, resp);    }    protected void doPost(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException {        processRequest(req, resp);    }    /**     * processRequest Reads the posted parameters and calls the service     *     * @param req  - HttpServletRequest     * @param resp - HttpServletResponse     * @throws ServletException     * @throws IOException     */    private void processRequest(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException {        ServletContext context = getServletContext();        // Set the default values        String svc = null;        req.setAttribute("DispatchSelected", " ");        req.setAttribute("ProxySelected", " ");        // See if the form was posted         String contentType = req.getContentType();        System.out.println(">>SERVLET: Content type is: " + contentType);        // verify we have multipart/form-data        if ((contentType != null)                && (contentType.indexOf("multipart/form-data") >= 0)) {            // Read the post data            DataInputStream in = new DataInputStream(req                    .getInputStream());            int formDataLength = req.getContentLength();            byte dataBytes[] = new byte[formDataLength];            int byteRead = 0;            int totalBytesRead = 0;            while (totalBytesRead < formDataLength) {                byteRead = in.read(dataBytes, totalBytesRead,                        formDataLength);                totalBytesRead += byteRead;            }            // Change it to a string            String data = new String(dataBytes);            // Parse out the parms            svc = getparm("msgservice", data);            uriString = getparm("uridef", data);            soapString = getparm("soapdef", data);            // Filename is part of the file data block.            fileName = data.substring(data.indexOf("filename=\"") + 10);            fileName = fileName.substring(0, fileName.indexOf("\n"));            // Strip path info out, windows or unix            fileName = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.indexOf("\""));            fileName = fileName.substring(fileName.lastIndexOf("/") + 1);            // Now look for the file data            int lastIndex = contentType.lastIndexOf("=");            String boundary = contentType.substring(lastIndex + 1,                    contentType.length());            int pos;            pos = data.indexOf("filename=\"");            pos = data.indexOf("\n", pos) + 1;            pos = data.indexOf("\n", pos) + 1;            pos = data.indexOf("\n", pos) + 1;            // Determine the boundaries            int boundaryLocation = data.indexOf(boundary, pos) - 4;            int startPos = ((data.substring(0, pos)).getBytes()).length;            int endPos = ((data.substring(0, boundaryLocation)).getBytes()).length;            // Write the file locally            FileOutputStream fileOut = new FileOutputStream(fileName);            fileOut.write(dataBytes, startPos, (endPos - startPos));            fileOut.flush();            fileOut.close();            System.out.println(">>SERVLET: File saved as " + fileName);        }        // Null means this is not a post, so we set the defaults        if (null == svc || "" == svc) {            // Set up the default values to use            uriString = "http://localhost:" + req.getServerPort();            soapString = "";            req.setAttribute("uridef", uriString);            req.setAttribute("soapdef", soapString);            req.setAttribute("filedef", "");            req.setAttribute("messageS", " ");            req.setAttribute("messageR", " ");            context.getRequestDispatcher(INDEX_JSP_LOCATION).forward(req, resp);        } else {            // This is a post, work with the data            String result = "";            // Setup soap return            soapString = (null != soapString) ? "checked" : "";            // Set the values to be on the refreshed page			            req.setAttribute("uridef", uriString);            req.setAttribute("soapdef", soapString);            req.setAttribute("filedef", fileName);            req.setAttribute(svc + "Selected", "selected");            // Create an instance of the tests client            SampleMTOMTests client = new SampleMTOMTests();            System.out.println(">>SERVLET: Filename = " + fileName);            // Call the test class            try {                client.setOptions(uriString, (0 != soapString.length()), fileName);                if (svc.equals("Dispatch")) {                    result = client.testMtomWithDispatch(result);                } else {                    result = client.testMtomWithProxy(result, getServletConfig().getServletContext().getResource("/WEB-INF/wsdl/ImageDepot12.wsdl"));                }            }            catch (Exception e) {                result = result.concat("ERROR: SERVLET EXCEPTION " + e);                System.out.println(">>SERVLET: EXCEPTION " + e);            }            // Format the output and refresh the panel            formatOutput(req, uriString, "Sending '" + fileName + "' via MTOM " + ((0 != soapString.length()) ? "SOAP 1.2" : "SOAP 1.1"), result);            context.getRequestDispatcher(INDEX_JSP_LOCATION).forward(req, resp);        }    }    /**     * getparm     * <p/>     * parses the parameters from the multipart-form data     *     * @param parm - String to search for     * @param data - String with form data     * @return - String - the parm value or null if not found     */    private String getparm(String parm, String data) {        String retval = null;        parm = "\"" + parm + "\"";        int pos = data.indexOf(parm);        if (0 <= pos) {            pos = data.indexOf("\n", pos) + 1;            pos = data.indexOf("\n", pos) + 1;            retval = data.substring(pos);            if (null != retval) {                retval = retval.substring(0, retval.indexOf("\n"));                retval = retval.substring(0, retval.indexOf("\r"));            }        }        return retval;    }    /**     * formatOutput     * <p/>     * Format the transaction data into the HTML text area     *     * @param req         - HttpServletRequest     * @param endpointURL - String     * @param request     - String with what we send     * @param received    - String returned value     */    private void formatOutput(HttpServletRequest req, String endpointURL,                              String request, String received) {        req.setAttribute("messageS", "\n" + "Connecting to... " + endpointURL                + "\n\n" + "Request: \n" + request + "\n");        req.setAttribute("messageR", "\n" + "Response: \n" + received                + "\n");    }}

⌨️ 快捷键说明

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