存档

2012年3月 的存档

Flex 国际化

2012年3月26日 没有评论

问题背景:

项目中的Alert按钮有时显示中文“确定”,有时显示“OK”

问题原因:

flexbuilder使用的英文版本 编译器用于国际化的编译参数默认值为: -locale en_US 按钮默认显示为ok

使用中文版本参数默认值为 -locale zh_CN 按钮显示为确定

分类: Flex 标签: ,

tomcat报java.lang.UnsupportedClassVersionError错误的原因

2012年3月24日 3 条评论

 

出现java.lang.UnsupportedClassVersionError 错误的原因,是因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误。因为,高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件格式不同。这样,低版本的JVM无法解释执行这个.class文件,会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误。

目前,使用新版本的IDE编辑器可能会造成你遭遇java.lang.UnsupportedClassVersionError 错误。MyEclipse9.0这个新版的IDE工具。进入首选项—Java—编译器,可以看到,默认的编译器依从等级是6.0,这里改为5,因为我们的程序需要运行在JDK1.5的JVM上。

同一配置区下的已安装JRE中,不要安装JRE,而是安装JDK,指定1.5的JDK。

在MyEclipse—-应用服务器下,指定Tomcat5。指定Tomcat使用jdk1.5。

这样,就全部指定使用Jdk5来编译和运行程序了。如果全部指定jdk6也是可以的。但是,绝对不能够使用jdk6编译程序,而又在jdk1.5上运行程序,那样将会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误。

分类: 应用服务器 标签:

关于Flex中的木偶变量

2012年3月24日 没有评论

在使用Flex开发时经常将程序拆分成许多模块,在载入模块时有些组件需要在application域中new一下才能起作用,这就是所谓的“木偶变量”。

通常将模块载入一个子域,那么模块里面的类定义都不是application域的,当module第一次使用组件时,将在它自己的域中拥有这些组件的类定义。如果别的module试图使用这些已经被另一个module使用的组件,它的定义将会不能匹配到现存的定义中。因此,为了避免组件的定义不匹配,在主应用程序中创建组件的实例,让所有的module去引用。

但是这个坏处很明显,这些声明莫名其妙,成为了一个”木偶变量”,所以需要另一种办法:

在ModuleLoader 的creationComplete方法中加入如下代码,表示将其加载到运行时库

var loader : Loader = new Loader();

var context : LoaderContext = new LoaderContext();

/* 加载到子域(模块) */

context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);

/* 加载到同域(共享库) */

context.applicationDomain = ApplicationDomain.currentDomain;

/* 加载到新域(独立运行的程序或模块) */

context.applicationDomain = new ApplicationDomain();

loader.load(new URLRequest(“loaded.swf”), context);

这样才使用组件时就不需要在application中事先声明。

分类: Flex 标签: ,

Jdom中文路径解析xml文件异常的解决办法

2012年3月24日 没有评论

问题背景:
集智平台安装版无法保存报表

问题原因:安装目录存在中文导致jdom解析xml文件报错
java.net.MalformedURLException: unknown protocol: d

解决方法:
在文件目录前加 file:///
Document doc = sax.build(“file:///”+PathUtils.getAppPhyPath()+filePath);

分类: java 标签: , ,