Java 运行后生成的图像的URL;GWT
我有一个上传并存储在服务器上的图像。我现在想围绕这个URL创建一个图像小部件。我的上传方法返回图像的相对路径,例如:uploads/image.jpg 我正在尝试生成一个URL以允许我访问此图像。此方法在开发模式下工作: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
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响应中对图像数据进行流式处理。它工作得很好!谢谢你的帮助。