0

远程:fedora 15 和 jdk+tomcat(vmware) 本地:win7 和 jdk+tomcat(我的笔记本)

几天前,我使用 Eclipse google 插件创建了一个默认 GWT 项目并成功将其部署到“远程”,它工作正常!现在我以同样的方式创建了一个新项目。IE 给了我一个 http 404,页面未找到信息作为回报。我确信除了创建它之外我对项目文件什么都不做。前者仍然可以正常工作,后者还不能工作。它们之间的唯一区别是包含战争文件的目录。我尝试通过多种方式解决它。这里有一些有用的结果:我几乎可以确认下面的块(在 web.xml 中)导致问题

  <servlet>
    <servlet-name>greetServlet</servlet-name>
    <servlet-class>com.test.gwt.server.GreetingServiceImpl</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>greetServlet</servlet-name>
    <url-pattern>gwtref/greet</url-pattern>
  </servlet-mapping>

当我将 servlet 类内容更改为任何内容(甚至是错误的)时,http 404 错误就会消失。我可以得到正确的页面,正如您想象的那样,rpc 不适用于 servlet 类的内容被更改!我不知道这是怎么回事,除了时间流逝我什么都不做!我还将后者部署到安装在我的笔记本上的 tomcat 上。它工作正常!天哪!多么令人惊奇的问题!我是使用 java 进行 Web 应用程序开发的新手。有人可以帮我吗?

4

2 回答 2

0

这是一个疯狂的猜测,但我走了。

一般来说,如果您在 servlet 容器中启动战争时遇到运行时错误,则整个战争将被标记为不可用。您是说如果您删除 servlet,404 就会消失,这让我相信 com.test.gwt.server.GreetingServiceImpl 类不在您的战争文件中(一些错字?)。

看看 WEB-INF/classes/ 是否存在。如果没有你得到你的错误......

于 2012-06-16T19:44:25.987 回答
0

我遇到了同样的问题,以下帮助我解决了它:

  1. 从项目的 src 文件夹构建 jar (将 jar 导出到 /war/Web-Inf/lib/(name_of_jar).jar

  2. 从你的war文件夹中构建一个war文件并将其部署到tomcat上(我使用Ant Build来制作war)

<target name="default" depends="buildwar,deploy"></target>

<target name="buildwar">
    <war basedir="war" destfile="(Some Name).war" webxml="war/WEB-INF/web.xml">
        <exclude name="WEB-INF/**" />
        <webinf dir="war/WEB-INF/">
            <include name="**/*.jar" />
        </webinf>
    </war>
</target>

<target name="deploy">
    <copy file="(Some Name).war" todir="." />
</target>

于 2014-01-29T05:06:56.170 回答