出于锻炼目的,我正在使用GWT创建一个应用程序,其中包含一个登录表单。运行时会出现错误
加载模块com.logvin.LoginForm
[ERROR]从第19行开始的元素'servlet'缺少必需的属性'path'
[ERROR]解析XML时失败
我正在使用GWT-RPC并检查给定的用户名和密码是否正确。我在xml文件中做了一些更改:
entry-point class='com.logvin.client.LoginForm'/>
<servlet> path="/LoginForm" class="com.logvin.gwt.server.GreetingServiceImpl"/>
<servlet>
<servlet-name>GreetingServiceImpl</servlet-name>
<servlet-class>com.logvin.server.GreetingServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GreetingServiceImpl</servlet-name>
<url-pattern>/LoginForm</url-pattern>
</servlet-mapping>
为什么我再次收到此错误?
答案 0 :(得分:3)
你混合了两种XML方言。
所有这些<servlet>
元素都应放入您的WEB-INF/web.xml
文件中,该文件告诉servlet容器(您将部署应用程序的服务器)如何为您的servlet提供服务。
*.gwt.xml
文件(GWT模块)是告诉GWT编译器(参见:编译时,而不是运行时)如何编译代码:加载应用程序时从哪里开始(entry-point
),哪些类是客户端(将编译为JavaScript,其他 - 仅限于服务器端 - 必须被排除),要导入的GWT模块(inherits
)等。
答案 1 :(得分:1)
我怀疑你是不正确gwt.xml
您的LoginForm.gwt.xml
应该是这样的。
<entry-point class="com.logvin.client.LoginForm"/>
<servlet path="/LoginForm"
class="com.logvin.gwt.server.GreetingServiceImpl" />
编辑:
* .gwt.xml文件中不再需要 servlet
个条目。所以你也可以删除这一行:
<servlet path="/LoginForm"
class="com.logvin.gwt.server.GreetingServiceImpl" />
此外,请检查web.xml
。
阅读示例here