More Web Proxy on the site http://driver.im/Glassfish勉強会(JavaEE6について)
- 13. ③EJB実装クラスを定義する実装するのはHelloではない!public class HelloBean implements SessionBean { private SessionContext context;public void setSessionContext(SessionContextaContext) { context = aContext;}public void ejbActivate() {}public void ejbPassivate() {}public void ejbRemove() {} public void ejbCreate() {}public String sayHello(String name) {return “こんにちは " + name;}}業務的に意味のあるのはこの部分だけ
- 14. ④XMLデプロイメント記述子を作成する<?xml version="1.0" encoding="UTF-8"?><ejb-jar version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"> <display-name>EJB2App-ejb</display-name> <enterprise-beans> <session> <display-name>HelloBeanSB</display-name> <ejb-name>HelloBean</ejb-name> <home>hello.ejb.HelloHome</home> <remote>hello.ejb.Hello</remote> <ejb-class>hello.ejb.HelloBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> …</ejb-jar>
- 15. 呼び出し側も大変だった①JNDIからホームオブジェクトをルックアップpublic static HelloHomelookupHelloHome() {Context context = null; try { context = new InitialContext();return (HelloHome) PortableRemoteObject.narrow(context.lookup("java:global/EJB2App/EJB2App-ejb/HelloBean!hello.ejb.HelloHome"), HelloHome.class); } catch (NamingException ex) { throw new RuntimeException(ex); } finally { if (context != null) { try {context.close(); } catch (NamingException ex) { throw new RuntimeException(ex); } } }}
- 16. ②ホームオブジェクトからEJBオブジェクトを作成して呼び出すHello hello = null;try { hello = helloHome.create(); return hello.sayHello(name); } catch (CreateException ex) { throw new RuntimeException(ex);} catch (RemoteException ex) { throw new RuntimeException(ex);} finally { if (hello != null) { try {hello.remove(); } catch (RemoteException ex) { throw new RuntimeException(ex); } catch (RemoveException ex) { throw new RuntimeException(ex); } }}業務的に意味のあるのはこの行だけ
- 44. コンポジットコンポーネントの定義例link.xhtml<html …> <composite:interface> <composite:attribute name="value“ /> <composite:attribute name="outcome"/> </composite:interface><composite:implementation> <h:link outcome="#{cc.attrs.outcome}" value="#{cc.attrs.value}"> <f:param name="cid“ value="#{javax.enterprise.context.conversation.id}"/> </h:link></composite:implementation></html>パラメーターを宣言部品の中身を定義
- 46. JSF1.2までの画面遷移定義JSF1.2まではすべての画面遷移ルールをxmlで定義する必要があった<navigation-rule> <description> sprint navigation rules </description> <from-view-id>/sprint/show.xhtml</from-view-id> <navigation-case> <from-outcome>showStories</from-outcome> <to-view-id>/story/show.xhtml</to-view-id> </navigation-case> <navigation-case> <from-outcome>showDashboard</from-outcome> <to-view-id>/dashboard/show.xhtml</to-view-id> </navigation-case></navigation-rule>faces-config.xml
- 49. Ajax機能を簡単に利用<h:panelGroup> <h:inputText id=“endDate” value=“#{currentProject.endDate}”> <f:convertDateTime pattern=“yyyy/MM/dd" /><f:ajax event="blur" render="endDateError" /></h:inputText> </h:panelGroup><h:message id="endDateError" for="endDate" styleClass="errorMessage" />このように書くとblur、つまり、フォーカスが外れた段階でAjaxリクエストが送信され、結果がエラーメッセージに反映される。