我正在尝试运行asterisk-java的脚本,如下所示。我添加了一个main方法,并在其中调用了service方法,如下所示:
import org.asteriskjava.fastagi.AgiChannel;
import org.asteriskjava.fastagi.AgiException;
import org.asteriskjava.fastagi.AgiRequest;
import org.asteriskjava.fastagi.BaseAgiScript;
public class HelloAgiScript extends BaseAgiScript
{
public void service(AgiRequest request, AgiChannel channel)
throws AgiException
{
// Answer the channel...
answer();
// ...say hello...
streamFile("welcome");
// ...and hangup.
hangup();
}
public static void main (String[] args)
{
HelloAgiScript asteriskService = new HelloAgiScript();
asteriskService.service(request, channel);
}
}当我尝试使用以下命令编译它时:
javac -cp asterisk-java.jar HelloAgiScript.java
我得到了这个错误:
HelloAgiScript.java:24: error: cannot find symbol
asteriskService.service(request, channel);
^
symbol: variable request
location: class HelloAgiScript
HelloAgiScript.java:24: error: channel has private access in AgiOperations
asteriskService.service(request, channel);
^
2 errors如何在main方法中将参数传递给service方法的实例?
发布于 2019-04-22 14:56:01
您需要将参数作为AgiRequest和AgiChannel类的对象传递给service()方法调用。
与您的示例一样,request和channel变量都没有创建。这就是你得到error Can't find symbol的原因
你的main方法应该是这样的:
public static void main (String[] args)
{
HelloAgiScript asteriskService = new HelloAgiScript();
AgiRequest request = new AgiRequest();
AgiChannel channel = new AgiChannel();
asteriskService.service(request, channel);
} 发布于 2019-04-22 14:59:43
您没有从命令行将任何参数放入main方法中。您应该编写类似这样的代码
javac -cp asterisk-java.jar par1, par2但是,首先应该定义哪个参数应该是您的内部参数,如下所示
public static void main (String[] args)
{
HelloAgiScript asteriskService = new HelloAgiScript();
AgiRequest request = args[0];
AgiChannel channel = args[1];
asteriskService.service(request, channel);
} Look here
https://stackoverflow.com/questions/55790303
复制相似问题