在创建大的工程项目时,从granite builder产生很多domain的as类,如果有些类在单个XMLApplication 项目中没有明确引用,会产生如下问题
ArgumentError: Error #2173: 无法读取流中的对象。类 org.granite.messaging.persistence.ExternalizablePersistentSet 虽未实现 flash.utils.IExternalizable,但由其别名可得知它为 externalizable 类。
at ObjectInput/readObject()
at org.im.scm.domain::MaterialCatalogBase/readExternal()[E:\workspace\scmSystem\as3\org\im\scm\domain\MaterialCatalogBase.as:154]
at ObjectInput/readObject()
at mx.collections::ArrayList/readExternal()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\ArrayList.as:443]
at mx.collections::ArrayCollection/readExternal()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\ArrayCollection.as:132]
[RPC Fault faultString="Didn't receive an acknowledge message" faultCode="Server.Acknowledge.Failed" faultDetail="Was expecting mx.messaging.messages.AcknowledgeMessage, but received null"]

经过测试有两种办法解决:
1、将所有的granite builder产生的as代码包含在一个SWC中,xmlApplication项目中明确包含编译产生的SWC文件的所有类,会产生编译后SWF变大
2、在编译命令中加入如下参数:
-include-libraries "E:/applications/flex Framworks/libs/graniteds2.0GA/granite-essentials.swc"
也可以解决如上问题。

同时要注意WEB-INF/web.xml的配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <description>
- my first Granite Data Service and Spring framework
- </description>
- <display-name>GraniteDS Spring</display-name>
- <context-param>
- <description>Path to spring config</description>
- <param-name>contextConfigLocation</param-name>
- <param-value>
- /WEB-INF/classes/applicationContext.xml
- </param-value>
- </context-param>
- <!– uncomment this block –>
- <context-param>
- <param-name>servicesConfigPath</param-name>
- <param-value>/WEB-INF/flex/services-config.xml</param-value>
- </context-param>
- <context-param>
- <param-name>graniteConfigPath</param-name>
- <param-value>/WEB-INF/granite/granite-config.xml</param-value>
- </context-param>
- <!– JPA hibernate session filter 这个地方是解决服务端的延时加载报错–>
- <filter>
- <filter-name>SpringOpenEntityManagerInViewFilter</filter-name>
- <filter-class>
- org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
- </filter-class>
- </filter>
- <filter-mapping>
- <filter-name>SpringOpenEntityManagerInViewFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <!– Granite Data Service AMF Message Filter –>
- <filter>
- <filter-name>AMFMessageFilter</filter-name>
- <filter-class>
- org.granite.messaging.webapp.AMFMessageFilter
- </filter-class>
- </filter>
- <filter-mapping>
- <filter-name>AMFMessageFilter</filter-name>
- <url-pattern>/graniteamf/*</url-pattern>
- </filter-mapping>
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
- <listener>
- <listener-class>
- org.springframework.web.context.request.RequestContextListener
- </listener-class>
- </listener>
- <listener>
- <listener-class>
- org.granite.config.GraniteConfigListener
- </listener-class>
- </listener>
- <servlet>
- <servlet-name>AMFMessageServlet</servlet-name>
- <servlet-class>
- org.granite.messaging.webapp.AMFMessageServlet
- </servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>AMFMessageServlet</servlet-name>
- <url-pattern>/graniteamf/*</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- <login-config>
- <auth-method>BASIC</auth-method>
- </login-config>
- </web-app>
特别要注意这一段代码:
- <!– JPA hibernate session filter –>
- <filter>
- <filter-name>SpringOpenEntityManagerInViewFilter</filter-name>
- <filter-class>
- org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
- </filter-class>
- </filter>
- <filter-mapping>
- <filter-name>SpringOpenEntityManagerInViewFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
点击下载此文件




![clip_image002[3]](http://www.bonashen.com/attachments/month_0902/e200922518827.jpg)
![clip_image004[3]](http://www.bonashen.com/attachments/month_0902/l200922518828.jpg)
![clip_image006[3]](http://www.bonashen.com/attachments/month_0902/6200922518838.jpg)