从单独的GWT客户端访问GWT Servlet

从单独的GWT客户端访问GWT Servlet,gwt,netbeans,Gwt,Netbeans,我的IDE使用NetBeans,服务器使用GlassFish 3.1.2 我编写了一个简单的GWT项目(GWTServer),它提供了一个名为GWTService的GWT RPC服务(该服务所做的只是将一个字符串关联到传入的内容并返回它)。我已经编写了一个单独的客户端项目(GWTClient),希望访问服务器GWT RPC服务。NetBeans在GWTServer中生成了一些可用于访问RPC服务的客户端代码 我的服务器GWT项目部署在glassfish上,可通过“localhost:8080/G

我的IDE使用NetBeans,服务器使用GlassFish 3.1.2

我编写了一个简单的GWT项目(GWTServer),它提供了一个名为GWTService的GWT RPC服务(该服务所做的只是将一个字符串关联到传入的内容并返回它)。我已经编写了一个单独的客户端项目(GWTClient),希望访问服务器GWT RPC服务。NetBeans在GWTServer中生成了一些可用于访问RPC服务的客户端代码

我的服务器GWT项目部署在glassfish上,可通过“localhost:8080/GWTServer”访问

我在做一些我需要做的事情时遇到了问题:

首先,GWTServer有几个生成的类需要在GWTClient中使用。这些类是GWTService和GWTServiceAsync。我需要(最好)让IDE将它们编译成一个jar文件,我可以将其包含在GWTClient中。我曾尝试创建一个java库项目,将这两个java文件复制到库中,并将该库包含在GWTClient中,但这给了我一个错误:“没有可用于org.gwtserver.client.gwtservicesync类型的源代码;您是否忘记继承所需的模块?”

其次,在客户机项目的某个地方,我需要指定servlet的url(类似于gwtservice)。基本上,需要对环境进行设置,以便在调用GWT.create(GWTService.class)时它能够工作

大概我可以在客户端项目的.xml配置文件中设置此连接。但我不知道怎么做。我不知道是否需要在服务器端对servlet定义进行更改

指定servlet的服务器端web.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 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_3_0.xsd">
    <servlet>
        <servlet-name>GWTService</servlet-name>
        <servlet-class>org.gwtserver.server.GWTServiceImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>GWTService</servlet-name>
        <url-pattern>/org.gwtserver.Server/gwtservice</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>welcomeGWT.html</welcome-file>
    </welcome-file-list>
</web-app>

GWT服务
org.gwtserver.server.gwtservicepimpl
GWT服务
/org.gwtserver.Server/gwtservice
30
welcomeGWT.html

我需要了解在客户端gwt应用程序中与现有servlet通信需要做什么。

为了让gwt客户端与gwt服务成功交互,它们必须同时编译在一起,并且出于安全原因必须托管在同一主机上。您不能构建自己的GWT客户机来访问在不同时间编译的现有GWT服务

不过,你的问题实际上与此无关。您无法从GWT客户端访问
jar
,因为它要求源代码位于源文件夹中。因此,您的
没有可用的源代码
错误。但是,一旦您解决了这个问题,您将看到:
模块需要(重新)编译
,由于我在第一段中提到的原因,您将无法修复该模块