2013-12-09 4 views
0

Я новичок в программировании GWT, но я запрограммировал много времени на Java!Отображение сервлета для вызова RPC

Я создал небольшое приложение с вызовом RPC, но он не работает.

Когда я нажимаю на кнопку с начнет вызов, я только получаю следующее сообщение на консоль:

[WARN] 404 - POST /wps_akt/student (127.0.0.1) 1401 bytes 
    Request headers 
     Host: 127.0.0.1:8888 
     Connection: keep-alive 
     Accept: */* 
     User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 
     Accept-Encoding: gzip,deflate,sdch 
     Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4 
     Content-Length: 137 
     X-GWT-Module-Base: http://127.0.0.1:8888/wps_akt/ 
     X-GWT-Permutation: HostedMode 
     Origin: http://127.0.0.1:8888 
     Content-Type: text/x-gwt-rpc; charset=UTF-8 
     Referer: http://127.0.0.1:8888/Wps_akt.html?gwt.codesvr=127.0.0.1:9997 
    Response headers 
     Content-Type: text/html; charset=iso-8859-1 
     Content-Length: 1401 

Файл web.xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
       http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     version="2.5" 
     xmlns="http://java.sun.com/xml/ns/javaee"> 



    <!-- Servlets --> 
    <servlet> 
    <servlet-name>StudentServiceImpl</servlet-name> 
    <servlet-class>at.htlpinkafeld.wps.server.StudentServiceImpl</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>StudentServiceImpl</servlet-name> 
    <url-pattern>/student</url-pattern> 
    </servlet-mapping> 


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

</web-app> 

Спасибо за помощь Стефан

ответ

2
путь

GWT-RPC в @RemoteServiceRelativePath является относительно GWT.getModuleBaseURL(), т.е. в папку, где GWT производит * .nocache.js и .cache. (эта папка называется именем вашего модуля GWT или атрибутом rename-to в файле * .gwt.xml).

Значит, ваш <servlet-mapping> должен использовать /wps_akt/student, а не только /student.

Если вы хотите использовать /student, то вы должны настроить ваш @RemoteServiceRelativePath читать "../student" (предполагая, что компилятор GWT принимает его) или установить путь в явном виде (Отдавая свой сервис ServiceDefTarget и вызвать setServiceEntryPoint с URL вы отображенной ваш сервлет на.

Смежные вопросы