GlassFish의 EAR 내에 일부 모듈을 배포하고 Java 클라이언트에서 서비스를 호출하려고합니다.Java 클라이언트에서 내 REST 서비스를 호출하려면 어떻게해야합니까?
이러한 클래스에는 하나의 EJB 모듈 ("ejbees.jar")이 있습니다.
@Stateless
@Path("hello")
public class HelloREST{
@GET
@Produces({MediaType.TEXT_PLAIN})
public String sayHello(){
return "Hello REST";
}
}
@ApplicationPath("example/*")
public class ApplicationConfig extends Application{
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> c = new HashSet();
c.add(HelloREST.class);
return c;
}
EJB 모듈과 다른 JAR 파일
은 "simpleapp.ear"라고하며 글래스 피쉬에 배포 된 EAR 내부에 포장됩니다. GlasFish는 하나의 모듈 "ejbees.jar"와 하나의 구성 요소 "HelloREST"로 애플리케이션 "simpleapp"를 나열합니다.이것은 지금까지 HelloREST
이라고 부르는 코드입니다.
http://localhost:8080/example
http://localhost:8080/simpleapp/example
http://localhost:8080/simpleapp/ejbees/example
http://localhost:8080/ejbees/simpleapp/example
을하지만 난 항상 HTTP 404 찾을 수 없음 오류가 발생합니다 :
public void callHelloRest(String uri){
WebTarget wr = ClientBuilder.newClient.target(uri);
String hellomessage = wr.path("hello").request(MediaType.TEXT_PLAIN).get(String.class);//Here comes HTTP 404 not found error.
}
URI는 내가 시도했다. 올바른 URI는 어떻게 생겼을 까? 아니면 EAR 내부의 EJB 내부에 REST 서비스를 패키지하는 것은 잘못된 것인가? GlassFish에게 REST 서비스에 대한 URI를 요청하는 방법이 있습니까?
미리 감사드립니다.