LCDS ES2 数据管理服务-使用注意事项之JTA包缺失

请大家注意!!! 

在使用 DataService 时,服务器端的 LCDS 中对应的 data-management-config.xml 配置文件写好后

客户端的 flex 程序跑起来后不能从服务器端正确的获取数据

 

并在 Tomcat 的控制台中输出类似下面的信息时

 

[LCDS]Received command: TCCommand [ Cmd: 0, MethodName: null, TrxID: 2.0]
[LCDS]Serializing AMF/RTMP response
Version: 3
  (Command method=_error (0) trxId=2.0)
    (Typed Object #0 'flex.messaging.messages.ErrorMessage')
      headers = (Object #1)
      rootCause = (Typed Object #2 'java.lang.NoClassDefFoundError')
        message = "javax/transaction/SystemException"
        localizedMessage = "javax/transaction/SystemException"
        cause = (Typed Object #3 'java.lang.ClassNotFoundException')
          message = "javax.transaction.SystemException"
          localizedMessage = "javax.transaction.SystemException"
          cause = null
          exception = null
      body = null
      correlationId = "DA3456AC-2B44-D586-64B2-A6DB1C059FC0"
      faultDetail = null
      faultString = "There was an unhandled failure on the server. javax/transaction/SystemException"
      clientId = "FC25AC66-C590-86C9-A820-A6DB06A35839"
      timeToLive = 0.0
      destination = "student"
      timestamp = 1.278404665754E12
      extendedData = null
      faultCode = "Server.Processing"
      messageId = "B05CFD08-FA0F-005D-C59A-D64339C803B7"

 

关键的几个条:

rootCause = (Typed Object #2 'java.lang.NoClassDefFoundError')
message = "javax/transaction/SystemException"
localizedMessage = "javax.transaction.SystemException"
faultString = "There was an unhandled failure on the server. javax/transaction/SystemException"

 

是因为缺失了 jta-spec1_0_1.jar 这个包

 

-------------------------------------------------------

下面是解决这个问题的过程和分析思路,希望对大家会有些用

 

在flex和java配合并在建立项目时IDE会让我们选择lcds.war文件,如下图:

 

 

 

不要太相信 lcds.war 里面会什么都有。

在我研究 DataService 并配置好服务器端的 data-management-config.xml 文件后

会有很多的信息输出,起初根本没有想到会是缺少jar包

因为 lcds-sample 里面也有很多 DataService 的应用嘛

我用的也是 lcds 自带的 lcds.war

 

开始的时候以为是代码写错了,检查了很多遍没有发现问题

后来,实在是无耐,在大量的输出信息中找到了最上面贴出来的那些信息中

发现 java.lang.NoClassDefFoundError 和 javax/transaction/SystemException

这两句话,那就先解决缺包的问题,搞了个jta的jar包扔到项目的lib下

问题解决了。

 

 

在 lcds.war 文件中的 lib 里有38个文件(包括两个txt文件)

lcds-samples.war 文件中的 lib 里有39个文件(包括两个txt文件),多了一个 hsqldb.jar ,是用来连接sample数据库的

 

lcds自带的sample程序为什么能好使呢?

古怪出在lcds安装目录下tomcat中的lib文件夹

在这个文件夹中会比正常的tomcat多三个文件夹

分别是 activemq4.1.1   jotm2.0.10   lcds  

而 jta-spec1_0_1.jar 这个包就在 jotm2.0.10 中

 

我使用的IDE是 flash builder 4 中文版 + java 插件 + j2ee 插件  (中英文混合的IDE用起来是很恶心的)

如果 flash builder 4 是装在 MyEclipse 中可能不会出现上面问题

因为在MyEclipse中的web项目,

MyEclipse会自动带有很多相关的javax包

 

 

使用版本

Flex SDK 3.5

IDE是 flash builder 4 中文版 + java 插件 + j2ee 插件 

Adobe® LiveCycle® Data Services ES2

Version 3.0
October 2009

 

欢迎大家留言讨论

转载请注明出处

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值