Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WebServlet注释正在使用中,但GAE正在尝试查找web.xml_Java_Google App Engine_Servlets_Google Cloud Platform_Build.gradle - Fatal编程技术网

Java WebServlet注释正在使用中,但GAE正在尝试查找web.xml

Java WebServlet注释正在使用中,但GAE正在尝试查找web.xml,java,google-app-engine,servlets,google-cloud-platform,build.gradle,Java,Google App Engine,Servlets,Google Cloud Platform,Build.gradle,如果我使用WebServlet注释,那么我不需要web.xml。 我正在使用gradle尝试Google App Engine标准本地服务器,但它无法找到web.xml C:\Projects\x\x\Research\testing>gradle appengineRun2018年3月28日 下午1:17:18 java.util.prefs.WindowsPreferences警告: 无法在根目录下打开/创建prefs根节点Software\JavaSoft\prefs 0x8000002。

如果我使用WebServlet注释,那么我不需要web.xml。 我正在使用gradle尝试Google App Engine标准本地服务器,但它无法找到web.xml

C:\Projects\x\x\Research\testing>gradle appengineRun
2018年3月28日 下午1:17:18 java.util.prefs.WindowsPreferences
警告: 无法在根目录下打开/创建prefs根节点Software\JavaSoft\prefs 0x8000002。Windows RegCreateKeyEx(…)返回错误代码5。
2018年12月28日下午1:17:18 com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
严重:接收到异常处理 C:\Projects\x\x\Research\testing\build\exploded testing\WEB-INF\WEB.xml
com.google.apphosting.utils.config.appengineconfig异常:无法 定位 C:\Projects\x\x\Research\testing\build\exploded testing\WEB-INF\WEB.xml

我做错了什么

我得到了一个servlet的存根

@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}
我的build.gradle与中使用的非常接近:

解决了

我使用的appengine-web.xml与中的示例相同。 添加了运行时元素并删除了未使用的内容,它可以正常工作。这就是它现在的样子:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <runtime>java8</runtime>
  <threadsafe>true</threadsafe>
</appengine-web-app>

爪哇8
真的
如果您将GAE标准与Java结合使用,则需要和,因为它们用于描述应用程序的配置方式


有关应用程序所需的配置设置的详细信息,请参阅文档。

这不是答案,而是一个在其他人面临类似情况时节省时间的提示


我有一些servlet的web.xml条目和一些带WebServlet注释的servlet。在这种情况下,带注释的servlet不会在GAE Java标准环境中注册为处理程序。本地没有问题。

我有appengine-web.xml,但它没有指定运行时版本。在我将java8添加为运行时之后,它现在就可以工作了。
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <runtime>java8</runtime>
  <threadsafe>true</threadsafe>
</appengine-web-app>