如何将文件从小程序发送到 gwt 服务器?

Posted

技术标签:

【中文标题】如何将文件从小程序发送到 gwt 服务器?【英文标题】:how to send a file from an applet to an gwt server? 【发布时间】:2011-09-29 14:22:51 【问题描述】:

我正在尝试将文件从小程序发送到我的服务器 GWT。在另一个应用程序 JSF 中,我将打开与我的 servlet 的 HTTP 连接。

如何使 whit 成为 GWT 服务器?我试图在 web.xml 中插入我的 servlet,但它似乎被忽略了。

我需要使用 RemoteService 吗?我该怎么办?

以下是web.xml中applet和servlet映射的代码。

URL urlDoServlet = new URL("http://192.168.3.100:8080/gwtapp/conection?action=send");    
HttpURLConnection conexaoComServlet = (HttpURLConnection) urlDoServlet.openConnection();    

conexaoComServlet.setDoOutput(true);
conexaoComServlet.setDoInput(true);
conexaoComServlet.setUseCaches(false);
conexaoComServlet.setDefaultUseCaches(false);

File doc = new File(file);
conexaoComServlet.setRequestMethod("POST");
conexaoComServlet.setRequestProperty("Content-Type", "application/octet-stream");
FileInputStream fis = new FileInputStream(doc);
BufferedInputStream bis = new BufferedInputStream(fis);

BufferedOutputStream bos = new BufferedOutputStream(conexaoComServlet.getOutputStream());
int read;
byte[] buffer = new byte[8192];
while((read = bis.read(buffer)) != -1)

    bos.write(buffer, 0, read);

bis.close();
fis.close();

bos.flush();
bos.close();

// get the answer.
ObjectInputStream ois = new ObjectInputStream(conexaoComServlet.getInputStream());
boolean bool = (Boolean) ois.readObject();
ois.close();
conexaoComServlet.getResponseMessage();
conexaoComServlet.disconnect();

<servlet>
    <servlet-name>ConectionServlet</servlet-name>
    <servlet-class>br.com.gwtapp.server.servlets.ConectionFileServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>conectionServlet</servlet-name>
    <url-pattern>/gwtapp/conection</url-pattern>
</servlet-mapping>

【问题讨论】:

"我正在尝试将一个文件从一个小程序发送到我的服务器 GWT。在另一个应用程序 JSF 中,我将打开一个与我的 servlet 的 HTTP 连接。如何创建一个 GWT 服务器?我试图在 web.xml 中插入我的 servlet,但它似乎被忽略了。" 【参考方案1】:

尝试将&lt;url-pattern&gt;/gwtapp/conection&lt;/url-pattern&gt; 替换为&lt;url-pattern&gt;/conection&lt;/url-pattern&gt; 并告诉我们是否可行:)

【讨论】:

为此。我将 web.xml 中的 URL 替换为 /conection 并让我调用 /gwtapp/conection 并正常工作。【参考方案2】:

我找到了一个新的实现,caarlos0 和 raduq-santos:

public class DispatchServletModule extends ServletModule


    @Override
    public void configureServlets()
    
        serveMyServlet();       
    

    private void serveMyServlet()
    
        serve("proj/servlet/MyServlet").with(MyServlet.class);
    

在我的小程序上...

new URL(path + "proj/servlet/MyServlet");

【讨论】:

以上是关于如何将文件从小程序发送到 gwt 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

GWTAI小程序集成中的GWT问题

如何在小工具中使用 GWT RequestFactory?

在eclipse中将GWT应用程序部署到tomcat

在 GWT 中将文件和 HashMap 发送到服务器

如何使用 fileUpload 在 GWT 中将文件从客户端传输到服务器

如何将未更改的值发送到 gwt RequestFactory 中的服务器?