在 Apache 上使用 RPC 调用部署 GWT 应用程序

发布于 2024-12-20 07:38:09 字数 1688 浏览 2 评论 0 原文

我正在开发一个 GWT 应用程序,比如说连接到 Web 服务的 SoapCon,因此我在服务器端使用 Axis 来连接到此网络服务。当我在开发模式下运行我的应用程序时,它工作正常(返回 xml 作为其响应)。但是,当我将应用程序部署到 Linux 中的 Apache 2.0 时,RPC 失败并为 servlet 映射 URL 返回 404

当我将此应用程序部署到 Apache 时,我递归地将 /war/soapcon 复制到 /var/www/html/SoapCon 目录以及 SoapCon.html 和 .css。

这是我的 web.xml

<!-- Servlets -->
<servlet>
  <servlet-name>greetServlet</servlet-name>
  <servlet-class>com.sample.google.server.SampleServiceImpl</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>greetServlet</servlet-name>
  <url-pattern>/soapcon/greet</url-pattern>
</servlet-mapping>

SoapCon.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='soapcon'>
....

RPC 服务的客户端存根:

@RemoteServiceRelativePath("greet")
public interface SampleService extends RemoteService {
    String method( String params, ... );
}

当我运行我的应用程序时

http://localhost/SoapCon/SoapCon.html

模块已加载,但是当我单击将从服务器调用 RPC 方法的按钮时,会发生错误返回:

com.google.gwt.user.client.rpc.StatusCodeException: 404 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
  <title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /SoapCon/soapcon/greet was not found on this server.</p>
</body></html>

我应该做什么?请帮忙。提前致谢。

I'm developing a GWT app, let's say SoapCon that connects to a web service so I'm using Axis on my server-side to connect to this web service. When I run my app in development mode, it works fine (which returns xml as its response). But when I deployed my app to Apache 2.0 in Linux, RPC failed and returns 404 for the servlet mapping URL.

When I deployed this app to Apache, I recursively copied the /war/soapcon to the /var/www/html/SoapCon directory and the SoapCon.html and .css.

Here's my web.xml:

<!-- Servlets -->
<servlet>
  <servlet-name>greetServlet</servlet-name>
  <servlet-class>com.sample.google.server.SampleServiceImpl</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>greetServlet</servlet-name>
  <url-pattern>/soapcon/greet</url-pattern>
</servlet-mapping>

SoapCon.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='soapcon'>
....

The client side stub for the RPC service:

@RemoteServiceRelativePath("greet")
public interface SampleService extends RemoteService {
    String method( String params, ... );
}

When I run my app

http://localhost/SoapCon/SoapCon.html

the module is loaded but when I clicked a button which will call RPC method from my server, error occurs returning:

com.google.gwt.user.client.rpc.StatusCodeException: 404 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
  <title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /SoapCon/soapcon/greet was not found on this server.</p>
</body></html>

What should I do? please help. thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

〆一缕阳光ご 2024-12-27 07:38:09

我假设您正在 apache 服务器上运行 tomcat。要部署您的 gwt 项目,您应该 构建一个 .war 文件,并且不要尝试手动复制所有部分。

404 错误告诉我们,URL“/SoapCon/soapcon/greet”未在服务器上的正确位置找到。部署 .war 而不是手动复制将自动将所有内容放置在正确的位置。

I assume you are running tomcat on your apache server. To deploy your gwt project you should build a .war-file, and do not try to copy all parts manually.

The 404 error tells us, that the URL "/SoapCon/soapcon/greet" was not found / in the right place on your server. Deploying the .war instead of manual copying will automatically place everything in the right position.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文