彭老师,我的MySQL和JBoss都正常启动了,但是启动IE浏览器,键入网址:http://localhost:8080/MyWeb/时却出现了“无法显示网页”,请问是什么原因呢?

找回了用户名

彭老师,我的MySQL和JBoss都正常启动了,但是启动IE浏览器,键入网址:http://localhost:8080/MyWeb/时却出现了“无法显示网页”,请问是什么原因呢?

彭老师好,我下载了新闻系统在看,由于系统本身采用数据库是mysql,如果我改成oracle后,除了oracle-ds.xml和一些相关的配置要修改外,还需要注意什么?!
我现在可以连接oracle了,但在进行栏目create操作的时候报下面相关错误:
javax.servlet.ServletException: System error! please call system Admin.java.lang.Exception: serviceAction Error:java.lang.Exception: execute Service errorjava.lang.Throwable: java.lang.Throwable: org.jboss.tm.JBossTransactionRolledbackLocalException: null; CausedByException is:
Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=hp02//9, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (javax.ejb.EJBException: Update failed. Expected one affected row: rowsAffected=0id=2); - nested throwable: (org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=hp02//9, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (javax.ejb.EJBException: Update failed. Expected one affected row: rowsAffected=0id=2))
at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:516)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:423)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at com.jdon.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:92)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:220)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:553)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.jboss.web.tomcat.tc4.statistics.ContainerStatsValve.invoke(ContainerStatsValve.java:76)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:65)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:197)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
at java.lang.Thread.run(Thread.java:536)

运行配置均感觉成功了,但在测试的时候,进行"add a news type" 的时候,在输入新闻栏目内容提交后,报错:
javax.servlet.ServletException: System error! please call system Admin.java.lang.Exception: serviceAction Error:java.lang.Exception: execute Service errorjava.lang.Throwable: java.lang.Throwable: org.jboss.tm.JBossTransactionRolledbackLocalException: null; CausedByException is:
Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=hp02//9, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (javax.ejb.EJBException: Update failed. Expected one affected row: rowsAffected=0id=2); - nested throwable: (org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=hp02//9, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (javax.ejb.EJBException: Update failed. Expected one affected row: rowsAffected=0id=2))
at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:516)
... ...
... ...

为什么?
我配置了数据库为ORACLE10g

我分析了一天了,实在是不知道该如何解决,望高手抽空看看,谢谢!

前面已经回答,估计和事务机制有关,确保你的数据库和JBoss的数据源配置文件都是支持事务的。

非常感谢banq的回复,让我学到了不少东西。
为了使用Oracle的事务处理数据源把/docs/examples/jca/oracle-xa-ds.xml复制到/server/default/deploy目录下,并且更改了配置:


<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<xa-datasource>
<jndi-name>NewsDS</jndi-name>
<track-connection-by-tx>true</track-connection-by-tx>
<isSameRM-override-value>false</isSameRM-override-value>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<xa-datasource-property name="URL">jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:oracle10</xa-datasource-property>
<xa-datasource-property name="User">user</xa-datasource-property>
<xa-datasource-property name="Password">pass</xa-datasource-property>
<!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool -->
<!--valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name-->
<!-- Checks the Oracle error codes and messages for fatal errors -->
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<!-- Oracles XA datasource cannot reuse a connection outside a transaction once enlisted in a global transaction and vice-versa -->
<no-tx-separate-pools/>
</xa-datasource>
<xa-datasource>
<jndi-name>Sequence</jndi-name>
<track-connection-by-tx>true</track-connection-by-tx>
<isSameRM-override-value>false</isSameRM-override-value>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<xa-datasource-property name="URL">jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:oracle10</xa-datasource-property>
<xa-datasource-property name="User">user</xa-datasource-property>
<xa-datasource-property name="Password">pass</xa-datasource-property>
<!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool -->
<!--valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name-->
<!-- Checks the Oracle error codes and messages for fatal errors -->
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<!-- Oracles XA datasource cannot reuse a connection outside a transaction once enlisted in a global transaction and vice-versa -->
<no-tx-separate-pools/>
</xa-datasource>
<mbean code="org.jboss.resource.adapter.jdbc.xa.oracle.OracleXAExceptionFormatter"
name="jboss.jca:service=OracleXAExceptionFormatter">
<depends optional-attribute-name="TransactionManagerService">jboss:service=TransactionManager</depends>
</mbean>
</datasources>

结果在登入访问系统也就是http://localhost:8080/MyWeb/newsTypeListAction.do?count=50页面出现下列错误,而重新刷新一下错误消失:

javax.servlet.ServletException: getPageIterator's result is null, check your ModelListAction subclass
at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:516)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:423)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)

而且还是在录入数据的时候出现下列错误:

javax.servlet.ServletException: System error! please call system Admin.java.lang.Exception: serviceAction Error:java.lang.Exception: execute Service errorjava.lang.Throwable: java.lang.Throwable: org.jboss.tm.JBossTransactionRolledbackLocalException: null; CausedByException is:
Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=hp02//33, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (oracle.jdbc.xa.OracleXAException); - nested throwable: (org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=hp02//33, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (oracle.jdbc.xa.OracleXAException))

不知道是不是我的oracle-xa-ds.xml配置上的错误。

此路行不通,我就在网上找资料,其中看到此贴:查看此贴
觉得是不是数据库char的问题,把数据库配置改成oracle-dx.xml,并且重新建表,把原来的char类型更改为varchar2类型,执行成功,但也有一些提示,是不是还是事务支持的原因?


22:18:26,390 WARN [TxConnectionManager] Prepare called on a local tx. Use of local transactions on a jta transaction with more than one branch may result in inconsistent data in some cases of failure.
22:18:26,390 WARN [TxConnectionManager] Prepare called on a local tx. Use of local transactions on a jta transaction with more than one branch may result in inconsistent data in some cases of failure.
22:18:28,453 WARN [RequestUtils] No FormBeanConfig found under 'null'
22:26:23,750 WARN [RequestUtils] No FormBeanConfig found under 'null'

初步学习了jdonFramework,感觉很爽,一个新的应用系统的建立变得简单而快捷。想请教banq大哥,我感觉jdonFramework新闻系统在MYSQL下没有什么异常,但我采用oracle数据库后,经常出现很多问题,感觉是不是数据库不太兼容?另外,jdonFramework是否只能在jboss+mysql下稳定运行,我想用oracle哈,下面就是一个在数据库为oracle下的一个异常:
当进入新闻录入界面后,录入了新闻的 类型、主题、内容等提交的时候,抛出异常:


18:08:49,265 ERROR [Engine] StandardWrapperValve[action]: Servlet.service() for servlet action threw exception
javax.servlet.ServletException: Servlet execution threw an exception
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at com.jdon.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:92)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
…………
…………
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
at java.lang.Thread.run(Thread.java:534)
18:08:49,328 ERROR [Engine] ----- Root Cause -----
java.lang.NoSuchMethodError: com.jdon.security.web.UserPrincipal.getUserFromSession(Ljavax/servlet/http/HttpServletRequest;)Lcom/jdon/controller/model/ModelIF;
at news.container.ContainerUtil.getUserModelAfterLogin(ContainerUtil.java:18)
at news.web.NewsHandler.serviceAction(NewsHandler.java:43)
at com.jdon.strutsutil.ModelSaveAction.execute(ModelSaveAction.java:90)
…………
…………

望banq大哥在百忙中能抽一点点时间来看看,指点一下小弟,谢谢了!

老师您来评论一下新闻发布系统的优缺点吧,想听一下您好的见解.

版主,请回答啊,,我买了您的教程,一步一步做,测试了好几天还是有问题,
你是不是还有什么细节没告诉我们,让我们半天摸不着头脑。
出错如下:
javax.servlet.ServletException: getPageIterator's result is null, check your ModelListAction subclass
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

请解决,谢谢!