在做Portlet的时候碰到一个奇怪的问题,使用Java应用程序来进行RFT传输好好的,但在Pluto下,同样的一段程序却不行,提示:
No client transport named 'https' found!
搜索GT官网的maillist,发现有人提到是AXIS没有读到正确的配置文件,把GT4目录下的config-client.wsdd拷贝到WEB-INF/classes下即可。于是照做,但现在还是有问题:
[http-8080-Processor24] ERROR delegation.DelegationUtil - org.apache.axis.ConfigurationException: java.lang.ClassNotFoundException: org.globus.wsrf.impl.security.authorization.ClientPropertiesHandler
但该类在wsrf_core.jar里已有定义,为什么唯独此类没找到呢?难道Pluto没有搜索WEB-INF/lib下的库(已把GT下的所有jar都拷贝到该目录下了,包括wsrf_core.jar)?把wsrf_core.jar复制到pluto的其它共享库目录下也不行。这个问题久久无法解决,一直搁置到今天。今天叫同学帮忙一起看,调试了半天没有结果。但后来定睛一看,在那个wsrf_core.jar文件里的确找不到org/globus/wsrf/impl/security/authorization/ClientPropertiesHandler.class,而只有org/globus/wsrf/impl/security/authentication/ClientPropertiesHandler.class!再看GT4/lib下的wsrf_core.jar,其中是有这个类的,而这两个jar文件大小居然不一样!顿时恍然大悟,可能是原来的wsrf_core.jar是某个旧版本或者破坏掉的文件,于是用新文件覆盖之,重装Pluto,果然一切顺利。
看来以后做事情不仅要多抱着些怀疑态度,还要更加认真谨慎才行。