首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Tomcat上配置PHP会出现异常: UnsatisfiedLinkError

在Tomcat上配置PHP会出现异常: UnsatisfiedLinkError
EN

Stack Overflow用户
提问于 2013-03-04 18:14:31
回答 1查看 1.9K关注 0票数 3

我一直在尝试在Tomcat上使用PHP (不要问为什么,我只是不得不这么做),并且一直在遵循Configure PHP with Tomcat和几个教程。

我已经完成了教程中要求的大部分操作,比如设置所有需要的环境变量,但在启动时仍然会遇到如下所示的错误:

代码语言:javascript
复制
javax.servlet.ServletException: Servlet.init() for servlet php threw exception
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    java.lang.Thread.run(Thread.java:619)

root cause

java.lang.UnsatisfiedLinkError: C:\WINDOWS\system32\php5servlet.dll: The specified procedure could not be found
    java.lang.ClassLoader$NativeLibrary.load(Native Method)
    java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)
    java.lang.ClassLoader.loadLibrary(ClassLoader.java:1728)
    java.lang.Runtime.loadLibrary0(Runtime.java:823)
    java.lang.System.loadLibrary(System.java:1028)
    net.php.reflect.loadLibrary(reflect.java:34)
    net.php.reflect.<clinit>(reflect.java:29)
    net.php.servlet.init(servlet.java:157)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    java.lang.Thread.run(Thread.java:619)

此外,每当我刷新页面时。它给出了这样的例外:

代码语言:javascript
复制
javax.servlet.ServletException: Servlet execution threw an exception

root cause

java.lang.UnsatisfiedLinkError: 
net.php.servlet.send(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Z)V
net.php.servlet.send(Native Method)
net.php.servlet.service(servlet.java:190)
net.php.servlet.service(servlet.java:214)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

从昨天开始,我一直在尝试解决这个问题,但没有成功。有人能告诉我我哪里做错了吗?或者解决方案是什么?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-18 12:21:01

您使用的是什么版本的PHP?

并非所有版本的PHP都支持php5servlet。php5servlet.dll库需要一个包含在库php5ts.dll中的函数或方法,但是这个库的php5ts.dll根据PHP的版本不同(添加新的或减去旧的方法)而变化,因此当php5servlet.dll调用某些方法时,可能找不到它。

根据您正在使用的PECL库,您需要一个PHP版本(可能比您正在使用的版本旧)。

为我测试的最后一个PHP版本是http://windows.php.net/downloads/releases/archives/php-5.2.16-Win32-VC6-x86.zip

我仍然不知道为什么PHP5.3.0或更新的VC6不能工作。

带有所需库(php5servlet.dll、php_java.dll、php_java.jar和phpsrvlt.jar)的PECL的最新版本是http://museum.php.net/php5/pecl-5.2.5-Win32.zip

用于此测试的Tomcathttp://archive.apache.org/dist/tomcat/tomcat-7/v7.0.27/bin/apache-tomcat-7.0.27-windows-x86.zip

如果只想处理.php文件,请单击...

现在(下面这部分不是导致错误的原因,所以不要修复它。),您可以直接将.php文件放入

代码语言:javascript
复制
TOMCATDIR\webapps\ROOT\

将生成的.jar文件php5srvlt.jar放在\lib中,显然会将web.xml文件更改为以下内容:

代码语言:javascript
复制
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">
  <servlet>
    <servlet-name>php</servlet-name>
    <servlet-class>net.php.servlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>php-formatter</servlet-name>
    <servlet-class>net.php.formatter</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>php</servlet-name>
    <url-pattern>*.php</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>php-formatter</servlet-name>
    <url-pattern>*.phps</url-pattern>
  </servlet-mapping>
</web-app>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15199148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档