ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュのUnavailableException解決方法

  • mixiチェック
  • このエントリーをはてなブックマークに追加
google app engine for javaで開発しているのですが、「UnavailableException」というエラーが出て解決できずに困っております。どなたか解決方法を教えて頂けないでしょうか?

Uncaught exception from servlet
javax.servlet.UnavailableException: Initialization failed.
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:200)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:168)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)
at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:250)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5838)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5836)
at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:398)
at com.google.net.rpc.impl.Server$2.run(Server.java:852)
at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56)
at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:576)
at com.google.net.rpc.impl.Server.startRpc(Server.java:807)
at com.google.net.rpc.impl.Server.processRequest(Server.java:369)
at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:442)
at com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:319)
at com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:290)
at com.google.net.async.Connection.handleReadEvent(Connection.java:474)
at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:831)
at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207)
at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:103)
at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251)
at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:413)
at java.lang.Thread.run(Unknown Source)

web.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<!-- Servlets -->
<servlet>
<servlet-name>greetServlet</servlet-name>
<servlet-class>mahjong.server.GreetingServiceImpl</servlet-class>
</servlet>

<servlet>
<!-- add start -->
<servlet-name>Sample3</servlet-name>
<servlet-class>mahjong.server.Sample3</servlet-class>
<!-- add end -->
</servlet>

<servlet>
<!-- add start -->
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>mahjong.server.HelloWorldServlet</servlet-class>
<!-- add end -->
</servlet>

<servlet-mapping>
<servlet-name>greetServlet</servlet-name>
<url-pattern>/clear_mah_jong/greet</url-pattern>
</servlet-mapping>

<servlet-mapping>
<!-- add start -->
<servlet-name>Sample3</servlet-name>
<url-pattern>/clear_mah_jong/Sample3</url-pattern>
<!-- add end -->
</servlet-mapping>

<servlet-mapping>
<!-- add start -->
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/HelloWorldServlet</url-pattern>
<!-- add end -->
</servlet-mapping>

<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>Clear_mah_jong.html</welcome-file>
</welcome-file-list>

<!-- Enables OpenSocial OAuth Filter -->
<filter>
<filter-name>opensocial-oauth-filter</filter-name>
<filter-class>org.hidetake.opensocial.filter.RequestValidationFilter</filter-class>
<init-param>
<param-name>config-class</param-name>
<!-- 設定クラス名 -->
<param-value>mahjong.server.Sample3</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>opensocial-oauth-filter</filter-name>
<!-- フィルタを有効にするURL -->
<url-pattern>/clear_mah_jong/*</url-pattern>
</filter-mapping>

</web-app>


Sample3.java


package mahjong.server;

import net.oauth.OAuth;
import net.oauth.OAuthAccessor;
import net.oauth.OAuthConsumer;
import net.oauth.OAuthMessage;
import net.oauth.OAuthProblemException;
import net.oauth.OAuthServiceProvider;
import net.oauth.OAuthValidator;
import net.oauth.SimpleOAuthValidator;
import net.oauth.server.OAuthServlet;
import net.oauth.signature.RSA_SHA1;

import java.util.ArrayList;
import java.io.IOException;
import java.util.Map;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Sample3 extends HttpServlet {

private final static String CERTIFICATE =
"-----BEGIN CERTIFICATE-----\n"
+ "MIICdzCCAeCgAwIBAgIJANCWpLIspxwbMA0GCSqGSIb3DQEBBQUAMDIxCzAJBgNV\n"
+ "BAYTAkpQMREwDwYDVQQKEwhtaXhpIEluYzEQMA4GA1UEAxMHbWl4aS5qcDAeFw0x\n"
+ "MDAzMjMwODE1NTlaFw0xMjAzMjIwODE1NTlaMDIxCzAJBgNVBAYTAkpQMREwDwYD\n"
+ "VQQKEwhtaXhpIEluYzEQMA4GA1UEAxMHbWl4aS5qcDCBnzANBgkqhkiG9w0BAQEF\n"
+ "AAOBjQAwgYkCgYEAtbq5Rns5IEktXldZ+37Fjlavnuc4JuwrD4F+4NQwVwVtR5yw\n"
+ "Vg10EanXWSGIAbUFx6hlppYOb0x/3PBMG80643LmXSJmvv4ViRUBl2Ys9Ie2L/D9\n"
+ "KVQXDWgJjxBGqo5MO6rA/Ip78kbiNbIQJUIJtbuJZWL3LMVe6mpIO2SUi1UCAwEA\n"
+ "AaOBlDCBkTAdBgNVHQ4EFgQU8bp8/6lmt5L8em6dZyoGciUUmuUwYgYDVR0jBFsw\n"
+ "WYAU8bp8/6lmt5L8em6dZyoGciUUmuWhNqQ0MDIxCzAJBgNVBAYTAkpQMREwDwYD\n"
+ "VQQKEwhtaXhpIEluYzEQMA4GA1UEAxMHbWl4aS5qcIIJANCWpLIspxwbMAwGA1Ud\n"
+ "EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEApalbBgXxnLJW8fM6W7E7GAE4QZbE\n "
+ "lvYqvtQSxwacGYoqF2FW1zrBkmTB12LTddFU01pqDaeels3Ru5TNOnTIJemFWW0D\n"
+ "viKtu9GqsrOye6AZR+XA5Iy/vq3EV1TCGuDNmhJaHAiLeYuLbEqmvH7/l9xNsafH\n"
+ "IpqnsHwF1pm0bTY="
+ "-----END CERTIFICATE-----";

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
verifyFetch(req, resp);
System.out.println("LOHOO");
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
verifyFetch(req, resp);
System.out.println("HOO");
}

private void verifyFetch(HttpServletRequest request, HttpServletResponse resp)
throws IOException, ServletException {
resp.setContentType("text/html; charset=UTF-8");
PrintWriter out = resp.getWriter();

try {
OAuthServiceProvider provider = new OAuthServiceProvider(null, null, null);
OAuthConsumer consumer = new OAuthConsumer(null, "mixi.jp", null, provider);
consumer.setProperty(RSA_SHA1.X509_CERTIFICATE, CERTIFICATE);

String method = request.getMethod();
String requestUrl = getRequestUrl(request);
List requestParameters = getRequestParameters(request);

OAuthMessage message = new OAuthMessage(method, requestUrl, requestParameters);

OAuthAccessor accessor = new OAuthAccessor(consumer);
out.print("*** OAuthMessage Params:");
out.print("URL: " + OAuthServlet.htmlEncode(message.URL));
for (java.util.Map.Entry param : message.getParameters()) {
String key = param.getKey().toString();
String value = param.getValue().toString();
out.print("");
out.print("Param Name-->" + OAuthServlet.htmlEncode(key));
out.print(" ");
out.print("Value-->" + OAuthServlet.htmlEncode(value));
}
out.print("");
out.print(" VALIDATING SIGNATURE ");
out.print("");
OAuthValidator validator = new SimpleOAuthValidator();
validator.validateMessage(message, accessor);
out.print("REQUEST STATUS::OK");
out.print("");
} catch (OAuthProblemException ope) {
out.print("");
out.print("OAuthProblemException-->" + OAuthServlet.htmlEncode(ope.getProblem()));
} catch (Exception e) {
out.println(e);
System.out.println(e);
throw new ServletException(e);
} finally {
out.flush();
}
}

/**
* Constructs and returns the full URL associated with the passed request
* object.
*
* @param request Servlet request object with methods for retrieving the
* various components of the request URL
*/
public static String getRequestUrl(HttpServletRequest request) {
StringBuilder requestUrl = new StringBuilder();
String scheme = request.getScheme();
int port = request.getLocalPort();

requestUrl.append(scheme);
requestUrl.append("://");
requestUrl.append(request.getServerName());

if ((port != 0) && (
(scheme.equals("http") && port != 80)
|| (scheme.equals("https") && port != 443))) {
requestUrl.append(":");
requestUrl.append(port);
}

requestUrl.append(request.getContextPath());
requestUrl.append(request.getServletPath());

return requestUrl.toString();
}

/**
* Constructs and returns a List of OAuth.Parameter objects, one per
* parameter in the passed request.
*
* @param request Servlet request object with methods for retrieving the
* full set of parameters passed with the request
*/
public static List getRequestParameters(HttpServletRequest request) {

List parameters = new ArrayList();

for (Object e : request.getParameterMap().entrySet()) {
Map.Entry entry = (Map.Entry) e;

String[] values = (String[])entry.getValue();
for (String value : values) {
parameters.add(new OAuth.Parameter((String)entry.getKey(), value));
}
}

return parameters;
}
}

コメント(3)

回答ありがとうございます。

ここに書いてあるとおりに再度試してみたのですがダメですね。

http://code.google.com/intl/ja/appengine/docs/java/tools/eclipse.html

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング