0
我有一個servlet
使用另一個class
命名Converter
,此類中使用,我已經把WEB-INF/lib
但仍試圖使用這個類,我得到java.lang.ClassNotFoundException
的時候,我已經嘗試了無數一些外部罐這裏的解決方案,但仍然沒有工作:的Servlet - 包括從另一個類等罐子
- 把罐子放在
classpath
。 - 把罐子在WEB-INF/classes中
而且他們的非正常工作,這裏是有關部分從我servlet
:
private Converter htmlCon = new Converter(webInfPath);
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
StringBuffer jb = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null) {
jb.append(line);
}
} catch (IOException IOE) {
IOE.printStackTrace();
}
try {
htmlCon.createPdf(jb.toString(), "pdf.pdf");
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
和Converter
:
package com.mataf.converters;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
//the external jars
import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.DocumentException;
public class Converter {
private Types m_type;
private String m_pathToCreateFileIn;
public Converter(String i_path) {
this.m_pathToCreateFileIn = i_path;
}
public void createPdf(String html, String fileName) throws IOException, DocumentException{
ITextRenderer renderer = new ITextRenderer();
// if you have html source in hand, use it to generate document object
renderer.setDocumentFromString(html);
renderer.layout();
String fileNameWithPath = m_pathToCreateFileIn + File.separator + "PDF-FromHtmlString.pdf";
FileOutputStream fos = new FileOutputStream(fileNameWithPath);
renderer.createPDF(fos);
fos.close();
System.out.println("File 2: '" + fileNameWithPath + "' created.");
System.out.println(html);
System.out.println(fileName);
}
}
全部stacktrace
:
com.ibm.ws.webcontainer.servlet.ServletWrapper run SRVE8052E: Logging ClassNotFoundException
java.lang.ClassNotFoundException: class java.lang.NullPointerException: null
at java.beans.Beans.instantiate(Beans.java:190)
at java.beans.Beans.instantiate(Beans.java:75)
at com.ibm.ws.webcontainer.servlet.ServletWrapper$1.run(ServletWrapper.java:1461)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadServlet(ServletWrapper.java:1450)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.load(ServletWrapper.java:1348)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:980)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3703)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:962)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:522)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:311)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:87)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1783)
當詢問異常時,**總是**發佈異常的完整堆棧跟蹤。 –
添加,謝謝。 –
@JBNizet - 添加堆棧跟蹤,請告訴是否有其他需要的東西。 –