Java 运行后生成的图像的URL;GWT

Java 运行后生成的图像的URL;GWT,java,gwt,servlets,Java,Gwt,Servlets,我有一个上传并存储在服务器上的图像。我现在想围绕这个URL创建一个图像小部件。我的上传方法返回图像的相对路径,例如:uploads/image.jpg 我正在尝试生成一个URL以允许我访问此图像。此方法在开发模式下工作: String imagePath = uploads/image.jpg; Image image = new Image(GWT.getHostPageBaseURL() + imagePath.replaceAll('//', '\')); replaceAll用于将wi

我有一个上传并存储在服务器上的图像。我现在想围绕这个URL创建一个图像小部件。我的上传方法返回图像的相对路径,例如:uploads/image.jpg

我正在尝试生成一个URL以允许我访问此图像。此方法在开发模式下工作:

String imagePath = uploads/image.jpg;
Image image = new Image(GWT.getHostPageBaseURL() + imagePath.replaceAll('//', '\'));
replaceAll用于将windows文件分隔符转换为URL分隔符。这将生成一个URLhttp://localhost:8080/card-designer/uploads/image.jpg部署到我的Jetty服务器时。图像不显示

是否无法为动态创建的图像创建可访问的URL?任何帮助都将不胜感激

我的上载方法返回图像的相对路径

相对于什么?您的文件存储在磁盘上的什么位置?这似乎需要配置jetty。您需要告诉jetty这个url对应于一个图像,它应该为它服务

见Jetty文档中的

简单的解决方案是在jetty.xml中添加类似的内容

<Configure class="org.mortbay.jetty.handler.ContextHandler">
  <Set name="contextPath">/upload</Set>
  <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/upload</Set>
  <Call name="addHandler">
    <Arg>
      <New class="org.mortbay.jetty.handler.ResourceHandler"/>
    </Arg>
  </Call>
</Configure>

/上传
/上传
您应该将“resourceBase”参数替换为磁盘上上载目录的路径

否则,创建您自己的servlet来获取图像并将其映射到/upload/


我猜它是在开发模式下工作的,因为嵌入式jetty默认情况下可能会提供静态内容之类的未知URL。

很抱歉回复太晚,我已经休假几天了。相对于servlet。只有这样,服务器端代码才能在以后找到映像,因为它们用于本问题范围之外的进一步处理。正如您所建议的,我现在通过创建一个新的图像服务servlet来解决这个问题,该servlet在http响应中对图像数据进行流式处理。它工作得很好!谢谢你的帮助。