QuercusEngine不支持所有Php代码

时间:2013-11-25 18:31:19

标签: java php

package q;

import com.caucho.quercus.QuercusEngine;

/**
 *
 * @author Raymond(Home)
 */
public class Q {
    public static void main(String[] args) throws Exception {
    QuercusEngine engine = new QuercusEngine();
    engine.setIni("foo", "bar");
    engine.execute("<?php  $_objSmsProtocolGsm = new Com(\"ActiveXperts.SmsProtocolGsm\"); ?>");
    }
}

这是我的错误

线程“main”中的异常com.caucho.quercus.QuercusErrorException:'Com'是一个未知的类名。     在com.caucho.quercus.env.Env.error(Env.java:6904)     在com.caucho.quercus.env.Env.createErrorException(Env.java:6476)     在com.caucho.quercus.env.Env.createErrorException(Env.java:6459)     在com.caucho.quercus.env.Env.findAbstractClass(Env.java:5547)     在com.caucho.quercus.expr.ObjectNewExpr.eval(ObjectNewExpr.java:91)     在com.caucho.quercus.expr.Expr.evalCopy(Expr.java:514)     在com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:585)     在com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88)     在com.caucho.quercus.expr.Expr.evalTop(Expr.java:540)     在com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67)     在com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:414)     在com.caucho.quercus.QuercusEngine.execute(QuercusEngine.java:159)     在com.caucho.quercus.QuercusEngine.execute(QuercusEngine.java:116)     在q.Q.main(Q.java:17) Java结果:1 建立成功(总时间:1秒)

1 个答案:

答案 0 :(得分:0)

我相信你指的是php_com_dotnet.dll扩展来启用Microsoft COM调用。 Quercus支持有限数量的扩展(其中包括一些最常用的扩展,如GD和PDO),但COM扩展不在其中。

作为一种解决方法,您可以考虑将您的功能包装在Web服务中以与PHP通信。