14958


最近のトレンドということで、  
JavaEE7 / JAX-RSの勉強をしています。  
適当にサンプルコードを拾い、いろいろ試しているんですが、  
VIEWの表示がうまくできません。

現在参考にしているサイトは以下です。  
<http://masatoshitada.hatenadiary.jp/entry/2015/04/03/230218>

今のところ、DB接続以前の問題なので、ビジネスロジック等は用意していません。

src/main/java/{package}/JaxrsActivator.java

[code]

    import javax.ws.rs.ApplicationPath;
    import javax.ws.rs.core.Application;
    
    @ApplicationPath("/")
    public class JaxrsActivator extends Application{
    }
    
[/code]

src/main/java/{package}/Sample.java

[code]

    import java.io.Serializable;
    
    import javax.annotation.PostConstruct;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.RequestScoped;
    import javax.mvc.Controller;
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.QueryParam;
    
    @Path("")
    @RequestScoped
    @ManagedBean(name = "sample")
    public class Sample implements Serializable {
    
        private String myname;
    
        @PostConstruct
        public void init(){
            myname = "null";
        }
    
        @GET
        @Path("request")
        public String request(@QueryParam("name") String name) {
        myname = name;
        return "/request/index.html";
        }
    
        @GET
        @Path("top")
        public void hello() {
        }
    
        @GET
        @Path("")
        public String top() {
            return "top/index.html";
        }
    }
    
[/code]

src/main/webapp/top/index.html

[code]

    <!DOCTYPE html>
    <html>
        <head>
            <title>Start Page</title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        </head>
        <body>
            <h1>Hello World!</h1>
        </body>
    </html>
    
[/code]

src/main/webapp/request/index.html

[code]

    <!DOCTYPE html>
    <html>
        <head>
            <title>Start Page</title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        </head>
        <body>
            <h:outputText id="myname" value="#{sample.myName}"/>
        </body>
    </html>
    
[/code]

上記ソースで、GlassFishを起動し、

localhost:8080/App/

に接続すると、

top/index.html

という文字列が表示されています。

localhost:8080/App/top

に接続すると、Internal Server Errorが、

localhost:8080/APP/requestに適当なGETリクエストを送っても結果は同じです。

どうすれば、VIEWを呼び出すことができるのでしょうか？


CC BY-SA 3.0
2015-08-26T06:14:43.923
14858
2015-08-31T00:27:51.923
8396
question
java java-ee jax-rs
JavaEE7 / JAX-RSで、遷移先のVIEWを表示できない


JavaEE7にはそのような機能はないのではないですか？  
JavaEE8からMVC的な機能があるようですが、JAVAEE7だとJSON／HTML／XMLの形式でしか返す機能は無いかと思います。


CC BY-SA 3.0
2015-08-28T11:01:24.497
14958
2015-08-28T11:01:24.497
11112
14858
answer


参考にされているサイトの通りに設定できているのだとしたら、  
「@Controller」アノテーションの付け忘れではないでしょうか？


CC BY-SA 3.0
2015-08-31T00:27:51.923
15058
2015-08-31T00:27:51.923
10724
14858
answer