鉴于我有一个代表我的RESET服务的接口
public interface BookResource {
@GET
@Path("/book/isbn/{isbn}/")
@Produces(value = { MediaType.APPLICATION_XML })
public ClientResponse<Book> getBookByIsbn(@PathParam("isbn") String isbn, @QueryParam("releaseStatus") String releaseStatus);
}
Run Code Online (Sandbox Code Playgroud)
如果我需要在我的webapp中使用Jersey作为JAX-RS提供者/ REST框架,如何为实际服务实现创建代理.
这很容易使用RESTEasy/Spring集成,这意味着我可以直接使用我的JAX-RS接口,而无需将其包裹在正确的锅炉板上进行调用.
基本上我正在寻找相当于以下的泽西岛: -
<bean id="bookResource" class="org.jboss.resteasy.client.spring.RestClientProxyFactoryBean">
<property name="serviceInterface" value="my.company.book.service.BookResource" />
<property name="baseUri" value="http://localhost:8181/books-service/" />
</bean>
Run Code Online (Sandbox Code Playgroud)
我刚刚花了最后一小时谷歌搜索这个并继续回到泽西岛的标准客户端API,这似乎需要大量的锅炉板来实现相同的目标.谁能指出我正确的方向?
请考虑以下来自http://www.knopflerfish.org/osgi_service_tutorial.html#best解释白板模式的代码片段
ServiceListener sl = new ServiceListener() {
public void serviceChanged(ServiceEvent ev) {
ServiceReference sr = ev.getServiceReference();
switch(ev.getType()) {
case ServiceEvent.REGISTERED:
{
registerServlet(sr);
}
break;
case ServiceEvent.UNREGISTERING:
{
unregisterServlet(sr);
}
break;
}
}
};
String filter = "(objectclass=" + HttpServlet.class.getName() + ")";
try {
bc.addServiceListener(sl, filter); // -- 1
ServiceReference[] srl = bc.getServiceReferences(null, filter); // -- 2
for(int i = 0; srl != null && i < srl.length; i++) {
sl.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED,
srl[i]));
}
} catch (InvalidSyntaxException e) { …Run Code Online (Sandbox Code Playgroud)