我是JAX-RS的新手并试图弄清楚这里发生了什么: 我在Glassfish(Eclipse插件)上运行了一个简单的Hello World Jersey REST服务。我可以通过浏览器成功访问它。
现在,我想从Java类中调用它(所以我可以围绕它构建JUnit测试)但是我在buildGet()方法上得到了这个错误:
java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
除非我不知道发生了什么魔法,否则我不会将我的服务和/或客户端打包在任何jar中,因此它与我的应用程序jar签名无关。
我的主要人物:
package com.test;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
public class HelloTest {
public static void main(String[] args)
{
Client client = ClientBuilder.newClient();
Response response = null;
try {
WebTarget webTarget = client.target("http://localhost:9595/Hello/api/ping");
Invocation helloInvocation = webTarget.request().buildGet();
response = helloInvocation.invoke();
}
catch (Throwable ex) {
System.out.println(ex.getMessage());
}
finally {
response.close();
}
}
}
我的服务:
package com.api;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("ping")
public class Hello
{
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHtmlHello()
{
return "<html>" + "<title>" + "Hello" + "</title>"
+ "<body><h1>" + "Hello!!!" + "</body></h1>" + "</html>";
}
}
答案 0 :(得分:0)
经过一段时间的努力,似乎我的Maven配置存在问题,并且没有正确下载/构建某些依赖项。我重新启动了一个新项目,复制了我的源文件,一切都按预期开始工作。