<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
    始終沒法解決,非常傷心,也很郁悶。決定先放棄一段時間。。。。。。。。

    主站蜘蛛池模板: 男女交性永久免费视频播放| 久久久99精品免费观看| 国产精品视频永久免费播放| 亚洲一区二区三区高清| 日韩视频免费在线观看| 亚洲无删减国产精品一区| 暖暖在线视频免费视频| 情人伊人久久综合亚洲| 182tv免费视频在线观看| 久久久亚洲精品无码| 一级毛片免费播放| 亚洲成年人电影网站| 性色av免费观看| 色吊丝免费观看网站| 亚洲最大av无码网址| 国产拍拍拍无码视频免费| 亚洲视频一区网站| 99在线视频免费观看视频| 亚洲AV日韩AV永久无码色欲| 四只虎免费永久观看| 免费萌白酱国产一区二区三区| 国产.亚洲.欧洲在线| 女人18毛片a级毛片免费视频| 日韩免费高清视频网站| 国产av无码专区亚洲av毛片搜 | 久久亚洲精品国产亚洲老地址 | 亚洲午夜视频在线观看| 国产成人精品免费视| 亚洲私人无码综合久久网| 免费在线观看黄色毛片| 成人无码区免费A∨直播| 久久精品国产亚洲AV电影| 成人免费福利电影| 好吊色永久免费视频大全| 亚洲综合男人的天堂色婷婷| 免费观看亚洲人成网站| 男人进去女人爽免费视频国产| 亚洲第一网站男人都懂| 中文永久免费观看网站| 亚洲AV无码乱码在线观看代蜜桃| 久久青草国产免费观看|