2015-01-23 10 views
0

Я пытаюсь получить JSP-файл для работы с HTML-формой, но у меня есть следующая проблема: Когда я пытаюсь запустить этот файл на сервере testerver с LiveLink), появляется сообщение об ошибке, говоря:Ошибка JSP «Незаконный старт типа»


500 Servlet Exception 

/WebApps_e/WebApps/FORMS/Formular_Softwareantrag/PDFTest/PDFTest.jsp:34: 
illegal start of type 

    try 
    ^
f:\wcm\website\WEB-INF\work\_jsp\_webapps_0e\_webapps\_forms\_formular_0softwareantrag\_pdftest\_pdftest__jsp.java:319: 

<identifier> expected 
    private java.util.ArrayList _caucho_depends = new java.util.ArrayList(); 
                     ^

2 errors 

Это, как выглядит мой JSP-файл, как

<%@ page import=" 
java.util.*, 
java.util.HashMap, 
java.net.URL, 
java.io.*, 
javax.mail.*, 
javax.mail.internet.*, 
javax.activation.*, 
de.gauss.vip.portalmanager.VipObjectBean, 
de.gauss.vip.repository.RepositoryEntry, 
de.gauss.lang.StringValue, 
de.gauss.vip.api.admin.Server, 
com.lowagie.text.*, 
com.lowagie.text.pdf.*, 
com.caucho.vfs.* 
" %> 
<%! 
HashMap pdfOutputs = new HashMap(); 
Document document = null; 
PdfReader reader = null; 
PdfStamper stamper = null; 
AcroFields acro_fields = null; 
ByteArrayOutputStream bostream = null; 

try 
{ 
    vobFORMS.setRepositoryName("{VIPDEPLOYMENT_NAME}"); 
    vobFORMS.addDefaultAttribute("pathname"); 

    /** Check for standart attributes */ 
    String template = request.getParameter("TEMPLATE"); 
    if (template == null) 
    { 
     throw new Exception("TEMPLATE-Parameter fehlt!"); 
    } 

    /** Collecting the parameters in a HashMap */ 
    Enumeration param_names_enum = request.getParameterNames(); 
    while (param_names_enum.hasMoreElements()) 
    { 
     String param = (String)param_names_enum.nextElement(); 
     if (param != null) 
     { 
      /** Wert des Parameters holen */ 
      String param_value = request.getParameter(param); 
      if (param_value != null) 
      { 
       pdfOutputs.put(param, param_value); 
      } 
     } 
    } 

    /** Handling the Data */ 
    /** 1. Load the PDF-Template */ 
    String filename = null; 
    RepositoryEntry repHelp = vobFORMS.getEntry(template); 

    if (repHelp != null) 
    { 
     filename = ((StringValue)repHelp.getValue("pathname")).getString(); 
    } 
    if (filename == null) 
    { 
     throw new Exception("PDF-Template could not be found!"); 
    } 

    reader = new PdfReader(filename); 
    int rotation = reader.getPageRotation(1); 

    if (rotation == 90 || rotation == 270) 
    { 
     document = new Document(PageSize.A4.rotate()); 
    } 
    else 
    { 
     document = new Document(PageSize.A4); 
    } 

    /** 2. Appending the writer */ 
    bostream = new ByteArrayOutputStream(); 
    PdfWriter writer = PdfWriter.getInstance(document, bostream); 

    /** 3. Opening the Document */ 
    document.open(); 

    /** 4. Appending the content */ 
    PdfContentByte cb = writer.getDirectContent(); 
    PdfImportedPage pdfpage = writer.getImportedPage(reader, 1); 

    if (rotation == 90 || rotation == 270) 
    { 
     cb.addTemplate(pdfpage,0,-1,1,0,0,595f); 
    } 
    else 
    { 
     cb.addTemplate(pdfpage,1,0,0,1,0,0); 
    } 

    BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); 
    cb.beginText(); 
    cb.setFontAndSize(bf, 12); 

    stamper = new PdfStamper(reader, pdfpage); 
    acro_fields = stamper.getAcroFields(); 

    /** Iteration through the HashMap */ 
    for (String key : pdfOutputs.keySet()) 
    { 
     acro_fields.setField(key, pdfOutputs.get(key)); 
    } 

    /** End of the form-fields */ 
    cb.endText(); 

    /** 5. Closing the document */ 
    document.close(); 
} 
catch(Exception ex1) 
{ 
    out.println("An Error occured while handling the data<br>"); 
    out.println(ex1.getMessage()); 
} 
finally 
{ 
    if (stamper != null) 
     stamper.close(); 
    if (pdfOutputs != null) 
     pdfOutputs.clear(); 
    if (reader != null) 
     reader = null; 
    if (document != null) 
     document.close(); 
    if (bostream != null) 
     bostream.close(); 
} 
%> 

Я уже ч ecked для отсутствующих скобок, но, насколько я могу судить, ни одного не хватает.

Я не знаю, если это важно, но на сервере работает Java 1.4.2_19 (не удается его обновить), и, как вы можете видеть, JSP также содержит функции iText.

Есть ли ошибка, которую я совершил в самом коде, или может быть причиной этого быть чем-то другим, о котором я не думал?

ответ

5

Это должен быть сервлет, а не JSP. JSP должен содержать HTML-код и JSP-теги. Не код Java.

Что касается Вашего вопроса: код преобразуется в класс, который выглядит следующим образом:

public class TransformedJsp { 
    HashMap pdfOutputs = new HashMap(); 
    // ... 

    try { 
     //... 

И это, очевидно, недействительна. Блок try должен находиться внутри метода. Не прямо в классе.

Но я повторяю: не используйте JSP для Java-кода. Используйте сервлет. Для этого они нужны.

+0

Спасибо за быстрый ответ, это поможет – suby125

Смежные вопросы