我有一个java webservice(jaxws / jersey) 并希望它在第一页上显示图像 当我使用浏览器访问网络服务时。
我的@GET方法发送第一页的html代码如下:
@GET
@Produces(MediaType.TEXT_HTML)
public String getHTMLSite(){
String message = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"+
"<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"de-DE\">" +
"<div style=\"padding-left:20px; height:200px; width:800px; font-size:20px;\">" +
"<p>" +
"<h1 style=\"color:#313e7d\">" +
"Hello World. This is a Webservice URL" +
"</h1>" +
"</p>"+
"<img src=\"/images/img_logo.gif\" height=\"51\" width=\"537\"/>"+
"</div>"+
"</html>";
return message;
}
除了图像
之外,一切正常<img src=\"/images/img_logo.gif\" height=\"51\" width=\"537\"/>
尚未找到。
我将图像移动到WebContent / images /目录中。
我做错了什么?
答案 0 :(得分:1)
由于您已将servlet映射设置为/*
,Jersey将拦截所有这些静态资源请求,而不知道如何处理它们。你可以:
将servlet映射的位置移动到/api/*
或类似的东西。这将解决静态资源问题,但会移动所有REST调用的终点。
按照以下答案中的说明切换到泽西过滤器:Jersey /* servlet mapping causes 404 error for static resources