问题
我正在尝试在我的虚拟机(ubuntu 16.04)上构建和部署 apprtc 应用程序。我已经成功部署了对撞机服务器。但是在尝试使用谷歌应用引擎启动 apprtc 应用程序时出现错误。
遵循的步骤
- 从https://github.com/webrtc/apprtc克隆源代码
- 根据文档启动对撞机服务器(监听 8080 端口)
- 使用命令 npm install 进入 apprtc 目录并安装节点包。
- 使用命令“grunt build”成功构建 apprtc 应用程序。
- 从https://cloud.google.com/appengine/docs/standard/java/download安装谷歌应用引擎(appengine-java-sdk-1.9.62)
使用以下命令运行 apprtc 应用程序:
DIRECTORY_PATH/appengine-java-sdk-1.9.62/bin/dev_appserver.sh out/app_engine/.
遇到这样的错误
Executing [/usr/lib/jvm/java-8-oracle/jre/bin/java, -javaagent:/home/jishnu/manaf/appengine-java-sdk-1.9.62/lib/agent/appengine-agent.jar, -classpath, /home/jishnu/manaf/appengine-java-sdk-1.9.62/lib/appengine-tools-api.jar, com.google.appengine.tools.development.DevAppServerMain, --property=kickstart.user.dir=/home/jishnu/manaf/apprtc, /home/jishnu/manaf/apprtc/out/app_engine/.]
Feb 08, 2018 5:00:03 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
Feb 08, 2018 5:00:06 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
SEVERE: Received exception processing /home/jishnu/manaf/apprtc/out/app_engine/WEB-INF/appengine-web.xml
com.google.apphosting.utils.config.AppEngineConfigException: Could not locate /home/jishnu/manaf/apprtc/out/app_engine/WEB-INF/appengine-web.xml
at com.google.apphosting.utils.config.AppEngineWebXmlReader.getInputStream(AppEngineWebXmlReader.java:141)
at com.google.apphosting.utils.config.AppEngineWebXmlReader.readAppEngineWebXml(AppEngineWebXmlReader.java:75)
at com.google.apphosting.utils.config.EarHelper.readWebModule(EarHelper.java:178)
at com.google.appengine.tools.development.ApplicationConfigurationManager$WarModuleConfigurationHandle.readConfiguration(ApplicationConfigurationManager.java:417)
at com.google.appengine.tools.development.ApplicationConfigurationManager.<init>(ApplicationConfigurationManager.java:158)
at com.google.appengine.tools.development.ApplicationConfigurationManager.newWarConfigurationManager(ApplicationConfigurationManager.java:100)
at com.google.appengine.tools.development.ApplicationConfigurationManager.newWarConfigurationManager(ApplicationConfigurationManager.java:86)
at com.google.appengine.tools.development.DevAppServerImpl.<init>(DevAppServerImpl.java:142)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:338)
at com.google.appengine.tools.development.DevAppServerFactory.access$000(DevAppServerFactory.java:31)
at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:285)
at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:282)
at java.security.AccessController.doPrivileged(Native Method)
at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:281)
at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:348)
at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:45)
at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:223)
at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:214)
Caused by: java.io.FileNotFoundException: /home/jishnu/manaf/apprtc/out/app_engine/WEB-INF/appengine-web.xml (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at com.google.apphosting.utils.config.AppEngineWebXmlReader.getInputStream(AppEngineWebXmlReader.java:137)
... 21 more
com.google.apphosting.utils.config.AppEngineConfigException: Invalid configuration
at com.google.appengine.tools.development.DevAppServerImpl.reportDeferredConfigurationException(DevAppServerImpl.java:435)
at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:232)
at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:47)
at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:219)
at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:368)
at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:45)
at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:223)
at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:214)
Caused by: com.google.apphosting.utils.config.AppEngineConfigException: Invalid appengine-web.xml(/home/jishnu/manaf/apprtc/out/app_engine/WEB-INF/appengine-web.xml) - Could not locate /home/jishnu/manaf/apprtc/out/app_engine/WEB-INF/appengine-web.xml
at com.google.apphosting.utils.config.EarHelper.readWebModule(EarHelper.java:180)
at com.google.appengine.tools.development.ApplicationConfigurationManager$WarModuleConfigurationHandle.readConfiguration(ApplicationConfigurationManager.java:417)
at com.google.appengine.tools.development.ApplicationConfigurationManager.<init>(ApplicationConfigurationManager.java:158)
at com.google.appengine.tools.development.ApplicationConfigurationManager.newWarConfigurationManager(ApplicationConfigurationManager.java:100)
at com.google.appengine.tools.development.ApplicationConfigurationManager.newWarConfigurationManager(ApplicationConfigurationManager.java:86)
at com.google.appengine.tools.development.DevAppServerImpl.<init>(DevAppServerImpl.java:142)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:338)
at com.google.appengine.tools.development.DevAppServerFactory.access$000(DevAppServerFactory.java:31)
at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:285)
at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:282)
at java.security.AccessController.doPrivileged(Native Method)
at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:281)
at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:348)
... 3 more
预期成绩
根据文档,在此步骤之后,我们应该使用http://localhost:443 url 成功访问 apprtc 应用程序。
我遵循的步骤的实际问题是什么?