учитывая, что вы новичок, я бы сказал, не пытайтесь это сделать. это определенно возможно, но бесполезно усложнит ваш Makefile. придерживайтесь простых способов, пока вам не станет удобнее делать.
, который сказал, один из способов создания в каталоге, отличном от исходного каталога, - VPATH ; Я предпочитаю правила шаблона
У меня была та же проблема: мне не нравится добавлять кодировку в тэг "@Produces" везде.
Я нашел решение прямо здесь: http://stephen.genoprime.com/2011/05/29/jersey-charset-in-content-type.html
В основном вам просто нужно добавить фильтр ответов, который добавит кодировку (например, если тип содержимого, возвращаемый в данный момент - text, xml или json)
import com.sun.jersey.spi.container.ContainerRequest;
import com.sun.jersey.spi.container.ContainerResponse;
import com.sun.jersey.spi.container.ContainerResponseFilter;
import javax.ws.rs.core.MediaType;
public class CharsetResponseFilter implements ContainerResponseFilter {
public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
MediaType contentType = response.getMediaType();
response.getHttpHeaders().putSingle("Content-Type", contentType.toString() + ";charset=UTF-8");
return response;
}
}
И зарегистрировать фильтр:
ServletAdapter jerseyAdapter = new ServletAdapter();
jerseyAdapter.addInitParameter("com.sun.jersey.spi.container.ContainerResponseFilters", "com.my.package.MyResponseFilter");
Работает тоже с Guice, конечно, например, в вашем классе, расширяющем ServletModule:
final Map<String, String> parameters = new HashMap<String, String>();
parameters.put("com.sun.jersey.spi.container.ContainerResponseFilters", com.package.JerseyCharsetResponseFilter.class.getName());
serve("/*").with(GuiceContainer.class, parameters);