2

「Google App Engine Java and GWT Application Development Code」という本のサンプル プログラムを実行しようとしています。

connactr というプログラム。

プログラムはインポートを使用しています: com.google.appengine.api.labs.taskqueue.TaskOptions.Builder.url com.google.appengine.api.labs.taskqueue.Queue

もう存在しないので、com.google.appengine.api.taskqueue.TaskOptions.Builder.withurl com.google.appengine.api.taskqueue.* に変更しました。

コードも変更します。

Queue queue = QueueFactory.getDefaultQueue();
      queue.add(url("/updatefeedurls").payload(data,
        "application/x-java-serialized-object"));

に:

Queue queue = QueueFactory.getDefaultQueue();
      queue.add(withUrl("/updatefeedurls").payload(data,
        "application/x-java-serialized-object"));

私は古い方法を持っていたところならどこでもこの種の変更を加えました。エラーなしでアプリケーションを実行できましたが、ページごとにエラー 404、ページが見つかりませんが表示されます。

withurl() メソッドにはエラー 404 を引き起こす別のロジックがあると思いますが、それを修正するために何をすべきかを見つけることができませんでした。

これを機能させるには、何を変更する必要がありますか?

これが 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"   
id="WebApp_ID"
version="2.5">


<!-- ===================== friendsService ===================== -->
<servlet>
<servlet-name>friendsService</servlet-name>
<servlet-class>com.metadot.book.connectr.server.FriendsServiceImpl</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>friendsService</servlet-name>
<url-pattern>/connectr/friendsService</url-pattern>
</servlet-mapping>

<!-- ===================== messagesService ===================== -->
<servlet>
<servlet-name>messagesService</servlet-name>
<servlet-class>com.metadot.book.connectr.server.MessagesServiceImpl</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>messagesService</servlet-name>
<url-pattern>/connectr/messagesService</url-pattern>
</servlet-mapping>

<!-- ===================== Login Service ===================== -->
<servlet>
<servlet-name>loginService</servlet-name>
<servlet-class>com.metadot.book.connectr.server.LoginServiceImpl</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>loginService</servlet-name>
<url-pattern>/connectr/loginService</url-pattern>
</servlet-mapping>


<!-- ===================== Login Google Servlet ===================== -->

<servlet>
<servlet-name>logingoogle</servlet-name>
<servlet-class>com.metadot.book.connectr.server.servlets.LoginGoogleServlet</servlet-  
class>
 </servlet>

<servlet-mapping>
<servlet-name>logingoogle</servlet-name>
<url-pattern>/logingoogle</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>logingooglecallback</servlet-name>
<servlet-  
class>com.metadot.book.connectr.server.servlets.LoginGoogleCallbackServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>logingooglecallback</servlet-name>
<url-pattern>/logingooglecallback</url-pattern>
 </servlet-mapping>

<!-- ===================== Login Twitter Servlet ===================== -->

<servlet>
<servlet-name>logintwitter</servlet-name>
<servlet-class>com.metadot.book.connectr.server.servlets.LoginTwitterServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>logintwitter</servlet-name>
<url-pattern>/logintwitter</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>logintwittercallback</servlet-name>
<servlet- 
class>com.metadot.book.connectr.server.servlets.LoginTwitterCallbackServlet</servlet-    
Class>
</servlet>

<servlet-mapping>
<servlet-name>logintwittercallback</servlet-name>
<url-pattern>/logintwittercallback</url-pattern>
</servlet-mapping>

 <!-- ===================== Login Facebook Servlet ===================== -->

<servlet>
<servlet-name>loginfacebook</servlet-name>
<servlet-class>com.metadot.book.connectr.server.servlets.LoginFacebookServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>loginfacebook</servlet-name>
<url-pattern>/loginfacebook</url-pattern>
</servlet-mapping>






 </servlet>
 <servlet-mapping>
 <servlet-name>XMPPRequest</servlet-name>
 <url-pattern>/xmpprequest</url-pattern>
 </servlet-mapping>

 <security-constraint>
 <web-resource-collection>
  <url-pattern>/xmpprequest</url-pattern>
 </web-resource-collection>
 <auth-constraint>
  <role-name>admin</role-name>
  </auth-constraint>
 </security-constraint>



<filter-mapping> 
<filter-name>appstats</filter-name> 
 <url-pattern>/*</url-pattern> 
</filter-mapping> 

<servlet>
 <servlet-name>appstats</servlet-name>
  <servlet-class>com.google.appengine.tools.appstats.AppstatsServlet</servlet-class> 
</servlet>
 <servlet-mapping> 
 <servlet-name>appstats</servlet-name>
 <url-pattern>/appstats/*</url-pattern> 
 </servlet-mapping>

 <security-constraint> 
  <web-resource-collection> 
  <url-pattern>/appstats/*</url-pattern> 
  </web-resource-collection> 
  <auth-constraint> 
  <role-name>admin</role-name> 
  </auth-constraint> 
</security-constraint> -->

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


</web-app>

事前にありがとう、イダン。

4

1 に答える 1

0

withUrl では、相対的な場所ではなく、意図したとおりに機能するために Url 全体が必要であると考えています。幸いなことに、GWT は動的な方法で URL 全体を作成する方法を提供します。

TaskOptionsgetUrl()メソッドを試してください。Window.alert(url-derived-from-getUrl)構築されたURLが何であるかを使用して確認しwithUrlます。

使用できます

GWT.getHostPageBaseUrl();

GWT.getModuleBaseUrl();

withUrl(Sting url) 内で適切に URL を作成します。

于 2013-01-14T08:56:42.467 に答える