簡體   English   中英

如何設置Apache-FOP以使其在Websphere 8.5中工作?

[英]How to setup Apache-FOP to get it work within Websphere 8.5?

我正在開發一個模塊,它將數據從XML文件導出到PDF文件,因此我使用XSLT作為代理來實現它。

我的代碼可在獨立應用程序中正常運行,但不能在Web應用程序中運行。

我不得不說我的應用程序服務器是帶有JRE6和FOP-1.1 jar庫的Websphere Liberty Profile 8.5。

希望您能提供幫助,在此先感謝您。

資源:

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;

import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;

@WebServlet("/FopTester")
public class FopTester extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public FopTester() {
        super();
    }

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        try {
            ByteOutputStream out = new ByteOutputStream();
            FopFactory fopFactory = FopFactory.newInstance();
            FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
            Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent,
                    out);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

它失敗於:

 Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent,out);

錯誤:

[err] java.lang.NullPointerException
[err]   at com.ibm.ws.classloading.internal.ContainerClassLoader$EntryUniversalResource.getResourceURL(ContainerClassLoader.java:207)
[err]   at [internal classes]

當使用包含空格的名稱調用getResource時,此NullPointerException是Liberty中的一個已知問題(PI13291)。 我建議與IBM打開PMR並請求iFix。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM