◎筱米加步枪◎.Blog

Happy coding

XFire客户端调用Tuscany发布的WebService服务端接收不到参数解决方法

为了验证不同实现的客户端调用WebService都能成功,证明WebService平台无关性,

场景如下:

服务端WebService由Tuscany进行发布,客户端用XFire(插件生成XFire客户端代码)进行调用。

结果:

服务端接收不到参数,接收的参数为null,但是XFire客户端却能够接收到服务端返回的参数。

解决方法:

在XFire生成的接口中指定名字空间。

1.接收上指定@WebService指定名字空间targetNamespace="http://com.xxx.web.client.gen/"

2.在接口参数上@WebParam指定名字空间targetNamespace="http://com.xxx.web.client.gen/"

注:com.xxx.web.client.gen为此接口类所在的包名。

Eclipse3.7恢复字体为Courier New

开发环境从MyEclipse8.5转到Eclipse3.7,结果发现字体从原先的Courier New变成了Consolas,在Eclipse3.7没有设置Courier New的选项,怎么调都没有原来的舒服。网上找到一处解决办法.文章出处:http://wmljava.iteye.com/blog/1158575

=========================================

具体解决办法如下:

1、 找到jFace并用WinRAR打开之:

           jFace的具体位置:$Eclipse目录$/plugins/org.eclipse.jface_3.7.0.I20110522-1430.jar,找到后,用WinRAR打开。

 

2、 找到并修改字体属性:
            打开后,依次展开:/org/eclipse/jface/resources,这里,你将看到不同操作系统的字体设置,比如jfacefonts_hp_ux,properties里保存了HP-UX系统的字体设置,jfacefonts_macosx.properties则保存了Mac X的字体设置。找到Windows 7/Vista的字体设置,双击,随便用一个文本编译器打开,找到org.eclipse.jface.textfont.0的配置项,将其设置成Courier New-regular即可,后面还可以设置字号。修改完成后,保存,WinRAR自动更新jar包。

 

3、 启动Eclipse Indigo,如果你没有修改过字体,将看到字体已经改过来了,但如果你修改了,则Reset一下,字体就会改过来了。

 

Maven工程上Absent Code attribute in method that is not native or abstract in class file解决方案。

在Maven工程上进行JUnit测试出现如下错误:

Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/CascadeType

 

解决方案:
在pom.xml文件中添加jboss-javaee6依赖

<dependency>
   <groupId>org.jboss.spec</groupId>
   <artifactId>jboss-javaee-6.0</artifactId>
   <version>2.0.0.Final</version>
   <type>pom</type>
   <scope>provided</scope>
</dependency>

 

JapserReport导出PDF出现Could not load the following font错误的解决方案

年后,将年前的基于JasperReport封装的API移植到Maven工程上,问题不断,其中一个问题就是导出PDF过程中出现如下错误:

 

Could not load the following font :

   pdfFontName   : STSong-Light

   pdfEncoding   : UniGB-UCS2-H

   isPdfEmbedded : true

 

百度了好久没有找到答案,偶然想起之前也有解决相关iText的中文版本问题,请看这篇文章:http://cst.is-programmer.com/posts/18844.html

不过这次有点不同的就是,JasperReport4.5.0 使用的是iText2.1.7版本,分析包名是以com.lowagie开头,所以相应的iTextAsian也应该是com.lowagie.XXX的。

之前出现错误就是导出了其他版本的iTextAsian.jar(com.itextpdf.XXX)。

总之:iText和iTextAsian的包要配套起来就没问题了。

JasperReport导出PDF报表中文不显示问题

这两天,利用iReport和JasperReport做报表,发现在导出PDF的时候中文不显示,而导出HTML却显示正常,而相关的itext包也引入到项目中了。百度发现,在报表定义的时候要设置如下属性:

    Font name:          宋体 (中文字体)
    PDF font name:  STSong-Light
    PDF Encoding:    UniGB-UCS2-H(Chinese Siplified)
    PDF Embeded:   true

如图:

设置后,问题解决。

Hibernate出现No data type for node: org.hibernate.hql.ast.tree.IdentNode可能原因之一

某日,单元测试逻辑,出现如下错误:

java.lang.IllegalStateException: No data type for node:org.hibernate.hql.ast.tree.IdentNode
 \-[IDENT] IdentNode: 'wfProcessInstance'

找了大半天原因:

原理HQL中用了一个全角空格,该死的肉眼看不出来。因此笔记下..

 

另外,如何在MyEclipse中检测全角空格,方法如下:

在MyEclipse中选中如下功能:

检测代码中是否如下一个“句号”的字符串,,如果出现"句号",说明这是一个全角空格。

MyEclipse重命名类出现"class file name must end with .class"解决方案

谷歌得:

Close Eclipse

Delete <workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index

Delete <workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt

Start Eclipse again

经验证,此方法OK.

Oracle中char类型字段在Hibernate中SQL查询只返回一个字符 解决方法

场景如下:

使用char(2)的类型来标识某个类型,比如01,02,03...

结果使用Hibernate的SQL查询该字段只返回0,0,0...

跟踪发现,char类型映射出Java对象是Character,说明char在Java中只有两个字节(一个字符),因此只返回0

解决方法:

通过限定他的返回类型为String就行了,如下:

SQLQuery query = session.createSQLQuery(sql);

query.addScalar("列名",Hibernate.STRING);

即可解决.不过会导致对所查询的字段都要加上addScalar.

Windows7下默认网关不能保存解决方案.

周末和蒜头两台电脑用网线连接,使用飞鸽传东西。蒜头电脑的默认网关设置居然不能保存,Google得:

第一步:点击左下角的WIN图标,输入CMD然后回车,打开DOS模式窗口。
第二步:在DOS命令行提示符下直接输入:“netsh winsock reset”,然后回车,会提示需要重启,不要管它。
第三步:在DOS命令行提示符下直接输入:“netsh int ip reset reset.log”,然后回车,提示重新启动计算机完成此操作。
第四步:关闭DOS窗口,重新启动计算机,问题解决。

PS:点对点比使用在一个路由器局域网内快了10倍多...

word2007中修改表格背景色

唉,不得不感慨下文档编写能力有待提高呀,制作一个表格,使其表头颜色需要更改下,没想到word中的表格设置背景颜色跟excel中还不太一样,word中设置背景步骤:

1.选中表格,一行或者整个

2.右键选择【边框和底纹】

3.选择【底纹】选项卡

4.编辑填充里头的颜色即可。