2


基本的にメッセージを受け取り、それをエコーバックするコードを次に示します。問題は、まったく応答しないことです:( Google App Engine、私のアプリケーションページで、「要求された URL /guestbook がこのサーバーに見つかりませんでした」というエラーが表示されます。

package guestbook;

import java.io.IOException;
import java.util.logging.Logger;

import javax.servlet.http.*;
import com.google.appengine.api.xmpp.JID;
import com.google.appengine.api.xmpp.Message;
import com.google.appengine.api.xmpp.MessageBuilder;
import com.google.appengine.api.xmpp.XMPPService;
import com.google.appengine.api.xmpp.XMPPServiceFactory;






@SuppressWarnings("serial")
public class GuestbookServlet extends HttpServlet {

private static final Logger LOG = 
          Logger.getLogger(GuestbookServlet.class.getName());

public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {

       // Parse incoming message
    XMPPService xmpp = XMPPServiceFactory.getXMPPService();
    Message msg = xmpp.parseMessage(req);
    JID jid = msg.getFromJid();
    String body = msg.getBody();
    LOG.info(jid.getId() + " --> JEliza: " + body);

    // Get a response from Eliza
    String response = "echo: " + body;
    LOG.info(jid.getId() + " <-- JEliza: " + response);

    // Send out response
    msg = new MessageBuilder()
        .withRecipientJids(jid)
        .withBody(response)
        .build();
    xmpp.sendMessage(msg);

    /*Message message = xmpp.parseMessage(req);
    JID fromJid = message.getFromJid();
    String body = message.getBody();

    String respMsg = null;

    if (body.equals("/list")) {
        respMsg = "Hi";
      } else if (body.equals("/help")) {
        respMsg = "Welcome to the Guestbook Chatbot!\nThe following commands are supported: \n /list \n /help";
      } else {
        respMsg = "Command '" + body + "' not supported! \nEnter '/help' for list of commands.";
      }

    JID tojid = new JID(fromJid.getId());

    Message msg = new MessageBuilder().withRecipientJids(tojid).withBody(respMsg).build();

    boolean messageSent = false;
    xmpp = XMPPServiceFactory.getXMPPService();
    if (xmpp.getPresence(tojid).isAvailable()) {
      SendResponse status = xmpp.sendMessage(msg);
      messageSent = (status.getStatusMap().get(tojid) == SendResponse.Status.SUCCESS);
    }*/

  }



}
4

2 に答える 2

1

あなたが与えた詳細によると、問題はweb.xmlファイルにあるはずだと思います

<servlet><servlet-name>GuestbookServlet</servlet-name><servlet-class>your.package.structure.GuestbookServlet</servlet-class></servlet><servlet-mapping><servlet-name>GuestbookServlet</servlet-name><url-pattern>/_ah/xmpp/message/chat/</url-pattern></servlet-mapping>

これをweb.xmlに追加してみてください。それに応じてyour.package.structure.GuestbookServletを変更してください。たとえば、私の場合はcom.appengine.cappになります

于 2012-07-08T14:21:54.483 に答える
0

JDK の設定を 1.7 から 1.6 に変更する必要がありました。ウィンドウの下 - >設定 - > Java - >コンパイラ

于 2012-07-09T08:38:48.070 に答える