[Seasar-user:4059] SQLファイルでUTF-8
Tetsuya Toba
[E-MAIL ADDRESS DELETED]
2006年 7月 12日 (水) 18:50:33 JST
鳥羽です。
S2DAO 1.0.35 を利用していますが、いくつか問題が出ています。
1. SQLファイルをUTF-8で作成すると、正しく読み込まれません。
テーブルは全て日本語で作成しており、またサーバの文字コードも
UTF-8ですので、そのままUTF-8にしたいと思っています。
文字コードを指定する方法はないでしょうか?
2. UTF-8では動かないので、暫定的に文字コードをMS932に変えて実行。
項目名に漢字の「ID」が含まれていると、例外が発生する。
以下、スタックトレースです。
DEBUG 2006-07-12 18:42:19,940 [main] BEGIN
CodeDefineDao#getAllCodeDefines()
DEBUG 2006-07-12 18:42:20,736 [main] END CodeDefineDao#getAllCodeDefines()
Throwable:org.seasar.framework.exception.OgnlRuntimeException:
[ESSR0073]OGNLで例外が発生しました。理由はMalformed OGNL expression: コード
ID != null
org.seasar.framework.exception.OgnlRuntimeException: [ESSR0073]OGNLで例外が
発生しました。理由はMalformed OGNL expression: コードID != null
at org.seasar.framework.util.OgnlUtil.parseExpression(OgnlUtil.java:71)
at org.seasar.framework.util.OgnlUtil.parseExpression(OgnlUtil.java:63)
at org.seasar.dao.node.IfNode.<init>(IfNode.java:36)
at org.seasar.dao.parser.SqlParserImpl.parseIf(SqlParserImpl.java:122)
at org.seasar.dao.parser.SqlParserImpl.parseComment(SqlParserImpl.java:106)
at org.seasar.dao.parser.SqlParserImpl.parseToken(SqlParserImpl.java:68)
at org.seasar.dao.parser.SqlParserImpl.parseEnd(SqlParserImpl.java:143)
at org.seasar.dao.parser.SqlParserImpl.parseBegin(SqlParserImpl.java:132)
at org.seasar.dao.parser.SqlParserImpl.parseComment(SqlParserImpl.java:108)
at org.seasar.dao.parser.SqlParserImpl.parseToken(SqlParserImpl.java:68)
at org.seasar.dao.parser.SqlParserImpl.parse(SqlParserImpl.java:57)
at
org.seasar.dao.impl.AbstractDynamicCommand.setSql(AbstractDynamicCommand.jav
a:45)
at
org.seasar.dao.impl.DaoMetaDataImpl.setupSelectMethodByManual(DaoMetaDataImp
l.java:349)
at
org.seasar.dao.impl.DaoMetaDataImpl.setupMethodByManual(DaoMetaDataImpl.java
:329)
at
org.seasar.dao.impl.DaoMetaDataImpl.setupMethodBySqlFile(DaoMetaDataImpl.jav
a:284)
at
org.seasar.dao.impl.DaoMetaDataImpl.setupMethod(DaoMetaDataImpl.java:225)
at
org.seasar.dao.impl.DaoMetaDataImpl.setupMethod(DaoMetaDataImpl.java:218)
at
org.seasar.dao.impl.DaoMetaDataImpl.setupSqlCommand(DaoMetaDataImpl.java:212
)
at org.seasar.dao.impl.DaoMetaDataImpl.initialize(DaoMetaDataImpl.java:203)
at
org.seasar.dao.impl.DaoMetaDataFactoryImpl.createDaoMetaData(DaoMetaDataFact
oryImpl.java:123)
at
org.seasar.dao.impl.DaoMetaDataFactoryImpl.getDaoMetaData(DaoMetaDataFactory
Impl.java:95)
at
org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:51
)
at
org.seasar.dao.pager.PagerS2DaoInterceptorWrapper.invoke(PagerS2DaoIntercept
orWrapper.java:64)
at
org.seasar.framework.aop.impl.NestedMethodInvocation.proceed(NestedMethodInv
ocation.java:43)
at
org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceIntercept
or.java:50)
at
org.seasar.framework.aop.impl.NestedMethodInvocation.proceed(NestedMethodInv
ocation.java:43)
at
org.seasar.framework.aop.interceptors.InterceptorChain.invoke(InterceptorCha
in.java:42)
at
CodeDefineDao$$EnhancedByS2AOP$$7c4
c51$$MethodInvocation$$getAllCodeDefines0.proceed(MethodInvocationClassGener
ator.java)
at
CodeDefineDao$$EnhancedByS2AOP$$7c4
c51.getAllCodeDefines(CodeDefineDao$$EnhancedByS2AOP$$7c4c51.java)
at
Client.main(ZinkyuClient.java:35)
Caused by: ognl.ExpressionSyntaxException: Malformed OGNL expression: コード
ID != null [ognl.TokenMgrError: Lexical error at line 1, column 4.
Encountered: "\uff29" (65321), after : ""]
at ognl.Ognl.parseExpression(Ognl.java:119)
at org.seasar.framework.util.OgnlUtil.parseExpression(OgnlUtil.java:69)
... 29 more
--
鳥羽 哲也
Seasar-user メーリングリストの案内