Java 服务器遇到错误,无法完成您的请求
我正在尝试在应用程序引擎Google上部署一个小应用程序。该应用程序在本地主机上运行良好,部署也很好,但我在生产环境中收到一条错误消息服务器遇到错误,无法完成您的请求。 错误 W 2014-04-05 10:12:02.177异常java.lang.IllegalArgumentException位于com.google.appengine.runtime.Request.process-f5cd6230c17e8858(Request.java)位于java.lang.ClassLoade E 2014-04-05 10:12:02.177 javax.servlet.servlet上下文日志:org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)上的不可用javax.servlet.UnavailableException W 2014-04-05 10:12:02.178无法启动context com.google.apphosting.utils.jetty。RuntimeAppEngineWebAppContext@ec911f{/,/base/data/home/apps/s~pattheboldandjujuju/1.37489685 C 2014-04-05 10:12:02.180 servlet javax.servlet.UnavailableException未捕获异常:初始化失败 我的代码非常简单: web.xmlJava 服务器遇到错误,无法完成您的请求,java,google-app-engine,Java,Google App Engine,我正在尝试在应用程序引擎Google上部署一个小应用程序。该应用程序在本地主机上运行良好,部署也很好,但我在生产环境中收到一条错误消息服务器遇到错误,无法完成您的请求。 错误 W 2014-04-05 10:12:02.177异常java.lang.IllegalArgumentException位于com.google.appengine.runtime.Request.process-f5cd6230c17e8858(Request.java)位于java.lang.ClassLoade E
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>Guestbook</servlet-name>
<servlet-class>guestbook.GuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Guestbook</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>guestbook.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>ObjectifyFilter</filter-name>
<filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ObjectifyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>pattheboldandjuju</application>
<version>1</version>
<!--
Allows App Engine to send multiple requests to one instance in parallel:
-->
<threadsafe>true</threadsafe>
<!-- Configure java.util.logging -->
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
</system-properties>
<!--
HTTP Sessions are disabled by default. To enable HTTP sessions specify:
<sessions-enabled>true</sessions-enabled>
It's possible to reduce request latency by configuring your application to
asynchronously write HTTP session data to the datastore:
<async-session-persistence enabled="true" />
With this feature enabled, there is a very small chance your app will see
stale session data. For details, see
http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions
-->
</appengine-web-app>
留言簿
guestbook.GuestbookServlet
留言簿
/
jsp
目标过滤器
com.googlecode.objectify.ObjectifyFilter
目标过滤器
/*
guestbook.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="java.util.List" %>
<%@ page import="guestbook.Message" %>
<!DOCTYPE html>
<html>
<head>
<title>Livre d'or</title>
<meta charset="utf-8" />
</head>
<body>
<h1>Vous avez aimé mon site ? Dites-le dans le Datastore !</h1>
<form action="/post" method="post">
<p>
<label>Votre nom : <input type="text" name="name" /></label>
</p>
<p>
<label>Votre message :<br />
<textarea name="message" style="width: 200px; height: 100px;"></textarea></label>
</p>
<p>
<input type="submit" />
</p>
</form>
<h1>Ils ont aimé :</h1>
<%
List<Message> messages = (List<Message>) request.getAttribute("messages");
for (Message message : messages) {
%>
<p>
<strong><%= message.getName() %></strong> a écrit :<br /> <%= message.getMessage() %>
</p>
<%}%>
</body>
</html>
利弗雷多尔酒店
你是avez aimémon站点吗?数据存储!
Votre nom:
Votre消息:
艾美岛:
aécrit:
GuestbookServlet.java
package guestbook;
import static com.googlecode.objectify.ObjectifyService.ofy;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.appengine.api.datastore.KeyFactory;
import com.googlecode.objectify.ObjectifyService;
@SuppressWarnings( "serial" )
public class GuestbookServlet extends HttpServlet {
// Enregistrement de la classe persistable auprès d'Objectify
static {
ObjectifyService.register( Message.class );
}
public void doGet( HttpServletRequest req, HttpServletResponse resp ) {
try {
// Requête Objectify
List<Message> messages = ofy().load().type( Message.class ).ancestor( KeyFactory.createKey( "LivreOr", "livreOr" ) ).order( "-date" ).limit( 5 ).list();
req.setAttribute( "messages", messages );
this.getServletContext().getRequestDispatcher( "/WEB-INF/guestbook.jsp" ).forward( req, resp );
} catch ( ServletException e ) {
e.printStackTrace();
} catch ( IOException e ) {
e.printStackTrace();
}
}
public void doPost( HttpServletRequest req, HttpServletResponse resp ) {
try {
// Création de l'objet
Message message = new Message( req.getParameter( "name" ), req.getParameter( "message" ) );
// Enregistrement de l'objet dans le Datastore avec Objectify
ofy().save().entity( message ).now();
resp.sendRedirect( "/" );
} catch ( IOException e ) {
e.printStackTrace();
}
}
}
套餐留言簿;
导入静态com.googlecode.objectify.ObjectifyService.ofy;
导入java.io.IOException;
导入java.util.List;
导入javax.servlet.ServletException;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入com.google.appengine.api.datastore.KeyFactory;
导入com.googlecode.objectify.ObjectifyService;
@抑制警告(“串行”)
公共类GuestbookServlet扩展了HttpServlet{
//永久性客体化类登记
静止的{
ObjectifyService.register(Message.class);
}
公共无效数据集(HttpServletRequest请求、HttpServletResponse响应){
试一试{
//要求客观化
List messages=ofy().load().type(Message.class).祖先(KeyFactory.createKey(“livrore”,“livrore”)).order(“-date”).limit(5).List();
请求setAttribute(“消息”,消息);
this.getServletContext().getRequestDispatcher(“/WEB-INF/guestbook.jsp”).forward(req,resp);
}捕获(ServletException e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
public void doPost(HttpServletRequest-req、HttpServletResponse-resp){
试一试{
//奥布杰特酒店
消息消息=新消息(req.getParameter(“名称”)、req.getParameter(“消息”));
//数据存储avec对象化的对象注册
ofy().save().entity(message).now();
分别以“/”号填列;
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
appengine web.xml
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>Guestbook</servlet-name>
<servlet-class>guestbook.GuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Guestbook</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>guestbook.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>ObjectifyFilter</filter-name>
<filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ObjectifyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>pattheboldandjuju</application>
<version>1</version>
<!--
Allows App Engine to send multiple requests to one instance in parallel:
-->
<threadsafe>true</threadsafe>
<!-- Configure java.util.logging -->
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
</system-properties>
<!--
HTTP Sessions are disabled by default. To enable HTTP sessions specify:
<sessions-enabled>true</sessions-enabled>
It's possible to reduce request latency by configuring your application to
asynchronously write HTTP session data to the datastore:
<async-session-persistence enabled="true" />
With this feature enabled, there is a very small chance your app will see
stale session data. For details, see
http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions
-->
</appengine-web-app>
帕提博尔德朱朱
1.
符合事实的
有什么办法解决这个问题吗?谢谢
/WEB-INF
中的资源用于配置,不可公开查看,因此您不能将请求转发到/WEB-INF/guestbook.jsp
尝试将
guestbook.jsp
移动到一个公共可访问的位置。我不确定这是否是解决方案,因为如果我只输入:resp.setContentType(“text/plain”);resp.getWriter().println(“Hello,world”),我会遇到相同的错误;当然,我曾尝试按照您的建议在其他地方实现guestbook.jsp,但没有成功。