2016-06-28 6 views
0

問題はいくつかのエラーメッセージが間違っているようです。TomEEとEclipse(IllegalArgumentException)を使用して簡単なJAX-RSサービスを公開することはできません

私は、これは、このアプリ

package study; 

import java.util.HashSet; 
import java.util.Set; 

import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.core.Application; 

@ApplicationPath(value="/jaxrs") 
public class JaxRSApplication extends Application{ 

    @Override 
    public Set<Class<?>> getClasses() { 
     Set<Class<?>> set = new HashSet<>(); 
     set.add(NotSingletonResource.class); 
     return set ; 
    } 
// 
// @Override 
// public Set<Object> getSingletons() { 
//  Set<Object> set = new HashSet<>(); 
//  set.add(new SingletonResource()); 
//  return set ; 
// } 

} 

発行元

package study; 

import java.io.IOException; 
import java.net.InetSocketAddress; 
import javax.ws.rs.ext.RuntimeDelegate; 
import com.sun.net.httpserver.HttpHandler; 
import com.sun.net.httpserver.HttpServer; 

public class StandaloneJaxRsServer { 

    public static void main(String[] args) throws IOException { 
     HttpServer server = HttpServer.create(new InetSocketAddress(
       "localhost", 8765), 8); 
     HttpHandler requestHandler = RuntimeDelegate.getInstance() 
       .createEndpoint(new JaxRSApplication(), HttpHandler.class); //<<<<< line 15 
     server.createContext("/jaxrs/", requestHandler); 
     server.start(); 
    } 
} 

であるEclipseの動的なWebアプリケーションプロジェクトを作成し、ランタイムがTomEE + 1.7.2で

ましたこれはリソースです

package study; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

@Path("/notSingletonResource") 
public class NotSingletonResource { 

    private volatile int counter = 0; 

    @GET 
    @Produces({MediaType.TEXT_HTML}) 
    public String getHello() { 
     return "Not singleton resource " + counter++; 
    } 

} 

は私が私がしかし

Exception in thread "main" java.lang.IllegalArgumentException 
    at org.apache.cxf.jaxrs.impl.RuntimeDelegateImpl.createEndpoint(RuntimeDelegateImpl.java:104) 
    at study.StandaloneJaxRsServer.main(StandaloneJaxRsServer.java:15) 

を取得)StandaloneJaxRsServer.mainを(実行しようとすると、IllegalArgumentExceptionがあまりわかりません。私は間違って何をしていますか?

答えて

1

RuntimeDelegateのjavadocは、 "例外:IllegalArgumentException - アプリケーションがnullまたは要求されたエンドポイントタイプがサポートされていない場合。 JAX-RSアプリケーションの場合は、org.apache.cxf.jaxrs.JAXRSServerFactoryBeanを使用し、エンドポイントを作成した結果を使用してサーバーをセットアップする必要があると思います。

0

私は自分の答えを受け入れません。

TomEE +には、この仕事をするライブラリがありません。代わりに、EclipseプロジェクトからTomEE +の依存関係をすべて削除してから、変換しました

Latest Jersey example does not work

:ちょうどこの質問への回答@lmiguelmhに応じ this dependencyを含むようにMavenプロジェクトへ3210

は、その後、私はちょうど私が本当に良い答えをしたいと思いますので、私は、ここで答えを受け入れる前に、もう少し待っていますこれらのジャージライブラリ

enter image description here

を追加しました。私は、「Java Web Services、Up and Running」という本で説明されている手順に従っているので、人々は本当にこの情報を知る必要があると思います。

関連する問題