Tim*_*o S 8 php birt classnotfoundexception php-java-bridge
我想在php webproject中使用Birt Reports.因此,我通过将JavaBridgeTemplate621.war和birt.war移动到我的Tomcat来安装推荐的Java Bridge和BIRT Runtime.
之后我写了一个叫BirtEngine的短课:
try {
$ctx = java_context()->getServletContext();
$this->birdEngine = java("org.eclipse.birt.php.birtengine.BirtEngine")->getBirtEngine($ctx);
java_context()->onShutdown(
java("org.eclipse.birt.php.birtengine.BirtEngine")->getShutdownHook()
);
} catch (java_InternalException $e) {
die($e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)
当我认识到$e->getMessage()返回时""我会看一下catalina.out并且在那里我发现了这个异常:
23.03.2011 15:02:43 org.apache.cxf.interceptor.AttachmentInInterceptor handleMessage
INFO: AttachmentInInterceptor skipped in HTTP GET method
23.03.2011 15:02:43 org.apache.cxf.interceptor.StaxInInterceptor handleMessage
INFO: StaxInInterceptor skipped.
23.03.2011 15:02:43 org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor handleMessage
INFO: ReadHeadersInterceptor skipped in HTTP GET method
23.03.2011 15:02:43 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: No such operation:
at org.apache.cxf.interceptor.URIMappingInterceptor.handleMessage(URIMappingInterceptor.java:77)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:285)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:168)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:175)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFServlet.java:157)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
java.lang.ClassNotFoundException: org.eclipse.birt.php.birtengine.BirtEngine
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at php.java.bridge.Util.classForName(Util.java:1518)
at php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445)
at php.java.bridge.Request.handleRequest(Request.java:444)
at php.java.bridge.Request.handleRequests(Request.java:500)
at php.java.bridge.http.ContextRunner.run(ContextRunner.java:145)
at php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60)
Run Code Online (Sandbox Code Playgroud)
特别是这条线引起了我的注意:
java.lang.ClassNotFoundException: org.eclipse.birt.php.birtengine.BirtEngine
Run Code Online (Sandbox Code Playgroud)
但每个尝试从谷歌和常见网站获得帮助失败.所以我希望这个网站的人可以帮助我.
我知道这是一个老问题,但我确实通过 PHP java 桥成功运行了 BIRT。您的 PHP 代码是正确的。但您使用 WAR 文件的方式却并非如此。
基本上,您的一个 war 文件包含 PHP/JavaBridge 文件和 BIRT + 一个特殊的类,用于在 JAVA 桥中加载 BIRT。
如果您仍然没有解决这个问题,我也许可以提供我正在使用的 WAR 文件。
| 归档时间: |
|
| 查看次数: |
2086 次 |
| 最近记录: |