十一月 2009


javaee27 十一 2009 04:04 下午

org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [select x.ID from MY_TABLE x where x.ID=?];
SQL state [ZZZZZ]; error code [311]; The optimizer could not find a unique index which it could use to scan table ‘CCS_B2B_WRKORD’ for cursor ‘jconnect_implicit_3′.;
nested exception is com.sybase.jdbc3.jdbc.SybSQLException: The optimizer could not find a unique index which it could use to scan table ‘CCS_B2B_WRKORD’ for cursor ‘jconnect_implicit_3′.

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy75.find(Unknown Source)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
Caused by: com.sybase.jdbc3.jdbc.SybSQLException: The optimizer could not find a unique index which it could use to scan table ‘MY_TABLE’ for cursor ‘jconnect_implicit_3′.

at com.sybase.jdbc3.tds.Tds.a(Unknown Source)
at com.sybase.jdbc3.tds.Tds.nextResult(Unknown Source)
at com.sybase.jdbc3.tds.Tds.getResultSetResult(Unknown Source)
at com.sybase.jdbc3.tds.TdsCursor.open(Unknown Source)
at com.sybase.jdbc3.jdbc.SybStatement.executeQuery(Unknown Source)
at com.sybase.jdbc3.jdbc.SybPreparedStatement.executeQuery(Unknown Source)
at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:97)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1808)
at org.hibernate.loader.Loader.doQuery(Loader.java:697)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2228)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
at org.hibernate.loader.Loader.list(Loader.java:2120)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
… 31 more

问题描述:
根据主键查询一个表的主键,即findIdById(String id);但是由于数据库表未将ID字段设置为主键则报上述错误。
解决办法:
把ID字段设置为主键。

javaee27 十一 2009 12:47 下午

ERROR: Hibernate operation: could not execute update query; uncategorized SQLException for SQL [update CCS_SYS_USER set NAME=? where SVC_UID=?]; SQL state [ZZZZZ]; error code [2402]; Error converting characters into server’s character set. Some character(s) could not be converted.
; nested exception is com.sybase.jdbc3.jdbc.SybSQLException: Error converting characters into server’s character set. Some character(s) could not be converted.

org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute update query; uncategorized SQLException for SQL [update USER set NAME=? where ID=?]; SQL state [ZZZZZ]; error code [2402]; Error converting characters into server’s character set. Some character(s) could not be converted.
; nested exception is com.sybase.jdbc3.jdbc.SybSQLException: Error converting characters into server’s character set. Some character(s) could not be converted.

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:339)

环境:

Sybase15数据库,Jconn3驱动,hibernate3.3.1GA,spring2.5.6

解决办法:

修改数据库参数disable character set conversions由默认值0改为1.

javaee and websphere11 十一 2009 11:54 上午

1)
my-struts.xml置于WEB-INF/classes目录下
2)通过修改web.xmls2过滤器的初始化参数
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,my-struts.xml</param-value>
</init-param>
</filter>
struts-default.xml,struts-plugin.xml必须加上
要不会报错
采用include的方式好像也有问题
<include file=”struts-default.xml” />
<include file=”struts-plugin.xml” />

com.opensymphony.xwork2.inject.DependencyException: com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=com.opensymphony.xwork2.ObjectFactory, name='default'] in public void com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.setObjectFactory(com.opensymphony.xwork2.ObjectFactory).
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectorsForMembers(ContainerImpl.java:144)
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectorsForMethods(ContainerImpl.java:113)
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectors(ContainerImpl.java:90)
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectors(ContainerImpl.java:86)
at com.opensymphony.xwork2.inject.ContainerImpl$1.create(ContainerImpl.java:71)
Truncated. see log file for complete stacktrace
com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=com.opensymphony.xwork2.ObjectFactory, name='default'] in public void com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.setObjectFactory(com.opensymphony.xwork2.ObjectFactory).
at com.opensymphony.xwork2.inject.ContainerImpl.createParameterInjector(ContainerImpl.java:235)
at com.opensymphony.xwork2.inject.ContainerImpl.getParametersInjectors(ContainerImpl.java:225)
at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.<init>(ContainerImpl.java:287)
at com.opensymphony.xwork2.inject.ContainerImpl$3.create(ContainerImpl.java:117)
at com.opensymphony.xwork2.inject.ContainerImpl$3.create(ContainerImpl.java:115)
Truncated. see log file for complete stacktrace

soft05 十一 2009 08:59 上午

MSN不能登陆,80072745是msn和NOD32有关:
打开Nod32的主窗口,”设置”–> “高级设置”–>”防病毒和反间谍保护”—->”协议过滤”–>”重定数据过滤”,默认的选中的是第三项:端口和应用程序被标志着作为Internet浏览器或电子邮件客户端。修改为选择第一项,即:HTTP和POP3协议端口,然后点”确定”按钮。
英文的NOD32 右上角的Setup–>Advanced setup–>Antivirus and antispyware–>Protocol filtering 由第三个选项(Ports and applications marked as Internet browsers or email clients) 更改为第一个选项 HTTP and POP3 ports。
参考资料http://jeffreyxia.spaces.live.com/blog /cns!2575616DFCFABDB6!1129.entry

soft05 十一 2009 08:37 上午

1)清理打开方式选择列表的推荐程序
以清理avi格式文件的”打开方式”菜单为例:运行Regedit,打开注册表编辑器,依次展开HKEY_CURRENT_USER\Software \Microsoft\Windows\CurrentVersion\Explorer\FileExts\.AVI,我们可以看到下级有一子项 “OpenWithList”,选中它,在右侧窗格中就可以看到AVI格式文件的”打开方式”菜单所关联的各种应用程序。选中需要清理的项目,按下 “DEL”键删除,刷新后退出注册表编辑器即可。
2)清理打开方式选择列表的其他程序
其他程序是个全局的注册表键
运行Regedit,打开注册表编辑器,HKEY_CLASSES_ROOT\\Applications里可以删除”打开方式-选择程序-其他程序”中的无用的程序。

javaee04 十一 2009 12:23 下午

首先应该了解SQL的UPDATE用法
UPDATE “表格”
SET “栏位1″ = [值1], “栏位2″ = [值2]
WHERE {条件}

HQL的写法跟SQL类似

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

String hqlUpdate = “update Customer c set c.name = :newName,c.age = :newAge where c.id= :id”;
int updatedEntities = s.createQuery( hqlUpdate )
.setString( “newName”, newName )
.setString( “newAge”,newAge)
.setString( “id”,id )
.executeUpdate();
tx.commit();
session.close();

参考资料

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/batch.html#batch-direct

javaee03 十一 2009 06:32 下午

环境

JDK15

WAS6.1.0.21

前因后果

使用CXF2.2.3开发ws服务端于WAS6.1.0.21上发布。

具体报错信息

[09-11-3 14:34:59:238 CST] 00000051 ServletWrappe E   SRVE0068E: 未捕获到 servlet CXFServlet 的其中一个服务方法中抛出的异常。抛出的异常:java.lang.IncompatibleClassChangeError
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.addExtensibilityElements(ServiceWSDLBuilder.java:229)
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.buildBindingInput(ServiceWSDLBuilder.java:355)
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.buildBindingOperation(ServiceWSDLBuilder.java:324)
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.buildBinding(ServiceWSDLBuilder.java:305)
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.build(ServiceWSDLBuilder.java:193)
at org.apache.cxf.wsdl11.ServiceWSDLBuilder.build(ServiceWSDLBuilder.java:148)
at org.apache.cxf.transport.http.WSDLQueryHandler.writeResponse(WSDLQueryHandler.java:146)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:182)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:220)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFServlet.java:158)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.service(AbstractCXFServlet.java:211)

解决之道

put the wsdl4j-1.6.1.jar in the $WebSphere_HOME/java/jre/lib/endorsed folder.

http://cwiki.apache.org/confluence/display/CXF20DOC/Application+Server+Specific+Configuration+Guide

参考此文章中提到了cxf在websphere上需要额外处理的地方,按照方法一修改后访问wsdl正常。

javaee03 十一 2009 09:21 上午

环境
Windows Server2003
Oracle9
前因后果
安装了Oracle后修改了主机名导致OracleOraHome92TNSListener服务无法启动。解决办法,打开%oracle_home%/network/admin/listener.ora
并修改HOST=your-host-name.
再启动OracleOraHome92TNSListener服务即可。

javaee and websphere02 十一 2009 11:10 下午

1)首先安装WAS并不创建任何概要。安装IHS

2)安装一个概要DM,并启动这个DM,一般是9043的端口,可将此cellManager添加到系统服务中并使自启动。

3)安装一个自定义的概要节点Custom01,并讲此受控节点托管给DM,启动这个受控节点的nodeagent,可将此nodeagent的启动添加到系统服务中并使自启动。

4)在DM的后台登陆进去,将配置更改为自动同步。在Custom01受控节点上创建一个server,一般端口是9080。

5)为这个server新增一个参数com.ibm.ws.webcontainer.invokefilterscompatibility

在WAS Console -> Application Servers -> <SERVER> -> Web Container Settings -> Web Container -> Custom Properties里,增加一个custom property,名字为com.ibm.ws.webcontainer.invokefilterscompatibility,值为true。

6)创建一个webserver基于IBM HttpServer,创建插件并传播插件。

7)发布测试struts2应用。

停止概要的cmd命令

cd D:\IBM\WebSphere\AppServer\bin目录下

stopServer Server01 -profileName Custom01
stopServer nodeagent -profileName Custom01
stopManager -profileName Dmgr01
stopNode -profileName Custom01

javaee and websphere02 十一 2009 10:58 下午

开发环境

JDK1.5 WAS6.1.0.21

struts2,spring2,hibernate3.1

出现问题的前因后果

1)使用基于jsp2的api开发标签库,注意不是基于struts2的框架开发组件。

2)将myTag.tld置于WEB-INF/tlds/目录下

3)在web.xml中配置如下

<jsp-config>
<taglib>
<taglib-uri>myTag</taglib-uri>
<taglib-location>/WEB-INF/tlds/myTag.tld</taglib-location>
</taglib>
</jsp-config>

4)在myTagExample.jsp中如此使用

<%@ taglib uri=”/myTag” prefix=”myTag” %>

<myTag:TextField  name=”property”/>

报错如下

错误消息:
JSPG0047E: 找不到 URI /myTag的标记库

根本原因:
com.ibm.ws.jsp.JspCoreException: JSPG0047E: 找不到 URI /myTag的标记库
at com.ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart(TagFileDependencyVisitor.java:76)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:267)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:309)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:139)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.visit(JspVisitor.java:121)
at com.ibm.ws.jsp.translator.JspTranslator.processVisitors(JspTranslator.java:127)
at com.ibm.ws.jsp.translator.utils.JspTranslatorUtil.translateJsp(JspTranslatorUtil.java:260)
at com.ibm.ws.jsp.translator.utils.JspTranslatorUtil.translateJspAndCompile(JspTranslatorUtil.java:103)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.translateJsp(AbstractJSPExtensionServletWrapper.java:453)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper._checkForTranslation(AbstractJSPExtensionServletWrapper.java:421)

解决此问题的办法有两个

1)修改web.xml中的配置如下

<jsp-config>
<taglib>
<taglib-uri>/myTag</taglib-uri>
<taglib-location>/WEB-INF/tlds/myTag.tld</taglib-location>
</taglib>
</jsp-config>

2)将web.xml的jsp-config全部删除,并将myTag.tld文件至于WEB-INF目录下即可。

下一页 »