<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Let's go inside

    this blog is deprecated as a result of laziness.
    posts - 59, comments - 2, trackbacks - 0, articles - 0

    傷心

    Posted on 2006-07-19 18:39 Earth 閱讀(357) 評論(0)  編輯  收藏 所屬分類: Life

    去掉與Hibernate有關的HibernateUtil,HibernateFilter, 以及所有的Hibernate配置和映射文件~_~

    IUserDAO, IMessageDAO等DAO接口基本不變,只需要在類前面加上@Remote~_~

    DAO接口的實現基本不變,只需要在類前面加上@Stateless,并定義一個叫javax.persistence.EntityManager的萬能類(和Spring中的 getHibernateTemplate()差不多但是比它還要簡單~_~)

    DAO接口的EJB3實現像下面這樣

    @Stateless
    public ? class ?MessageDAO? implements ?IMessageDAO?{

    ????@PersistenceContext(type
    = PersistenceContextType.TRANSACTION,?unitName? = ? " message " )
    ????
    private ?EntityManager?manager;

    ????
    public ? void ?saveMessage(Message?m)?{
    ????????manager.persist(m);
    ????}

    ????
    public ? void ?updateMessage(Message?m)?{
    ????????
    if ?(manager.find(Message. class ,?m.getId())? == ? null )?{
    ????????????
    throw ? new ?RuntimeException( " Unable?to?update? " ? + ?m
    ????????????????????
    + ? " ?because?there?is?no?prior?version " );
    ????????}
    ????????manager.merge(m);
    ????}

    ????
    public ?List?getMessages()?{
    ????????String?sql?
    = ? " select?m?from?Message?m " ;
    ????????
    return ?manager.createQuery(sql).getResultList();
    ????}

    ????
    public ? void ?deleteMessage(String?id,?String?userId)?{
    ????????Message?msg?
    = ?getMessage(id);
    ????????
    if ?(msg? == ? null )?{
    ????????????
    throw ? new ?MessageDAOException( " Can't?find?the?message?u?wanna?del! " );
    ????????}
    ????????
    if ?( ! msg.getUser().getId().equals(userId))?{
    ????????????
    throw ? new ?MessageDAOException( " U?cannot?del?others'?message! " );
    ????????}
    ????????
    if ?(manager.contains(msg))?{
    ????????????manager.remove(msg);
    ????????}?
    else ?{
    ????????????removeMessage(msg.getId());
    ????????}
    ????}

    ????
    public ? void ?removeMessage(String?id)?{
    ????????manager.createQuery(
    " DELETE?FROM?Message?m?WHERE?m.id?=?:mid " )
    ????????????????.setParameter(
    " mid " ,?id).executeUpdate();
    ????}

    ????
    public ?Message?getMessage(String?id)?{
    ????????
    return ?(Message)?manager.find(Message. class ,?id);
    ????}

    }

    (看看是不是比Hibernate3.0簡單,好像Hibernate3.2和這個一樣,偶還沒試過3.2)

    最后最關鍵的是實體定義和映射,到regsaga上面看了篇講解Annotation的文章 http://wiki.redsaga.com/confluence/display/HART/Mapping+entity+bean+associations+relationships
    原來Hibernate和EJB3的注解出自同門,我好像又明白了一點什么~_~

    改完了,要開始測試了,真是激動人心。

    確保D:\jboss-4.0.4.GA\server\default\lib\mysql-connector-java-3.1.12-bin.jar

    然后拷貝D:\jboss-4.0.4.GA\docs\examples\jca\mysql-ds.xml
    到D:\jboss-4.0.4.GA\server\default\deploy并做小部分修改
    ~_~。
    好像還要加一個persistence.xml一起打在jar包里邊。寫一個Ant任務吧,大家都這么做(還沒有在Eclipse下打包并發布的經驗,只會
    JBuilder~_~)

    幾番周折,給Ant加了打jar包打war包以及deploy的任務。
    啟動JBoss-4.0.4-GA,出了些錯誤,一一改正。。

    JUnit測試通過了,但打開JSP頁面注冊時報錯

    18:31:28,859 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
    java.lang.reflect.UndeclaredThrowableException
    ?at $Proxy177.saveUser(Unknown Source)
    ?at org.apache.jsp.regist_jsp._jspService(regist_jsp.java:64)
    ?at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    ?at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    ?at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
    ?at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    ?at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    ?at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    ?at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    ?at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    ?at cn.hxex.message.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:127)
    ?at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    ?at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    ?at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    ?at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    ?at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    ?at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    ?at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    ?at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
    ?at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
    ?at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    ?at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    ?at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    ?at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    ?at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    ?at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    ?at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    ?at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
    ?at java.lang.Thread.run(Thread.java:595)
    Caused by: java.io.NotSerializableException: cn.hxex.message.model.User
    ?at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
    ?at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1245)
    ?at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1069)
    ?at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
    ?at java.rmi.MarshalledObject.<init>(MarshalledObject.java:92)
    ?at org.jboss.aop.joinpoint.MethodInvocation.writeExternal(MethodInvocation.java:318)
    ?at org.jboss.serial.persister.ExternalizePersister.writeData(ExternalizePersister.java:58)
    ?at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:275)
    ?at org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput.writeObject(DataContainer.java:386)
    ?at org.jboss.serial.io.MarshalledObjectForLocalCalls.<init>(MarshalledObjectForLocalCalls.java:38)
    ?at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:57)
    ?at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    ?at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
    ?... 29 more
    始終沒法解決,非常傷心,也很郁悶。決定先放棄一段時間。。。。。。。。

    主站蜘蛛池模板: 午夜视频免费观看| 97视频热人人精品免费| 国产gav成人免费播放视频| 亚洲AV无码乱码在线观看代蜜桃| 亚洲精品免费观看| 久久精品国产亚洲AV无码麻豆| 日本免费中文字幕| 亚洲国产一区二区a毛片| 亚洲精品免费在线观看| 亚洲综合视频在线| 国产精品久久永久免费| 在线综合亚洲中文精品| 日韩精品无码人妻免费视频| 亚洲综合精品成人| 免费人成网站在线播放| 一级毛片免费播放男男| 亚洲国产精品成人精品无码区| 国产免费一区二区三区在线观看| 久久久久亚洲精品成人网小说| 午夜老司机永久免费看片| 亚洲乱码卡三乱码新区| 免费网站看v片在线香蕉| 四虎一区二区成人免费影院网址 | 中文字幕免费在线看线人动作大片 | 亚洲国产午夜精品理论片在线播放| 好吊妞998视频免费观看在线| 99亚洲男女激情在线观看| 免费a级毛片18以上观看精品| 巨胸狂喷奶水视频www网站免费| 亚洲国产精品久久久天堂| 手机在线看永久av片免费| 四虎永久在线精品免费一区二区| 亚洲嫩模在线观看| 成人免费视频试看120秒| 一本大道一卡二大卡三卡免费| 久久综合日韩亚洲精品色| A级毛片内射免费视频| 免费观看四虎精品成人| 亚洲精彩视频在线观看| jjzz亚洲亚洲女人| 亚洲国产精品免费在线观看|