2009年4月21日
#
最近的一個項目又要用到webservice(axis),上次為了趕時間完成任務,簡單的找了些例子然后就這樣用了,還好項目里本來就有對象和xml之間轉換的接口,所以要傳的對象一律轉換成xml,然后傳字符串。
嘗試了N久才搞定了傳輸屬性不是基本數據類型的問題。簡單帖個代碼:
1.server-config.wsdd
<service name="sendUser" provider="java:RPC">
<!-- 發布特定的方法,多個方法用逗號隔開 -->
<parameter name="allowedMethods" value="getUserByUserId"/>
<parameter name="className" value="cn.gov.zjport.suzhou.webservice.GetUser4WebServiceImpl"/>
<beanMapping languageSpecificType="java:cn.gov.zjport.suzhou.domain.CustomUser" qname="ns:CustomUser" xmlns:ns="urn:GetUser4WebService"/>
<beanMapping languageSpecificType="java:cn.gov.zjport.suzhou.domain.CustomRole" qname="ns:CustomRole" xmlns:ns="urn:GetUser4WebService"/>
<beanMapping languageSpecificType="java:cn.gov.zjport.suzhou.domain.CustomUserRole" qname="ns:CustomUserRole" xmlns:ns="urn:GetUser4WebService"/>
</service>
2.客戶端測試代碼
QName qn = new QName("urn:GetUser4WebService","CustomUser");
QName qn1 = new QName("urn:GetUser4WebService","CustomRole");
QName qn2 = new QName("urn:GetUser4WebService","CustomUserRole");
call.setTargetEndpointAddress(new URL("http://localhost:8080/suzhouPlatform/webServices/sendUser") );
call.setOperationName(new QName("http://localhost:8080/suzhouPlatform/webServices/sendUser","getUserByUserId"));
call.registerTypeMapping(CustomUser.class, qn,new BeanSerializerFactory(CustomUser.class, qn),new BeanDeserializerFactory(CustomUser.class, qn));
call.registerTypeMapping(CustomRole.class, qn1,new BeanSerializerFactory(CustomRole.class, qn1),new BeanDeserializerFactory(CustomRole.class, qn1));
call.registerTypeMapping(CustomUserRole.class, qn2,new BeanSerializerFactory(CustomUserRole.class, qn2),new BeanDeserializerFactory(CustomUserRole.class, qn2));

Object result = call.invoke(new String[]{"admin"});
大概代碼就這樣了^_^
2008年11月19日
#
2008年11月18日
#
今天用jquery萬能方法$()的時候,發現點小問題:
頁面表單如下
<input type="text" id="user.userid" name="user.userid"/>
JS中用$("#user.userid").val()這個方法的時候一直取不到這個節點的值,搞了半天沒反應,firebug一直報未定義的錯誤
后來將表單修改了下,id="userid"
然后用$("#userid").val()就能取到這個值
????????????還沒搞清楚這個是什么原因。
2008年11月7日
#
今天遇到一個問題,tomcat啟動的時候一直報錯:
2008-8-1 9:31:29 org.apache.catalina.core.StandardContext start
嚴重: Error in resourceStart()
2008-8-1 9:31:29 org.apache.catalina.core.StandardContext start
嚴重: Error getConfigured
網上查了半天沒有找到答案,很多人說是web.xml配置有問題,但是看了半天也沒發現到底錯在哪里。
后來有baidu了下org.apache.catalina.startup.TldConfig這句話,才發現上面的提示的日志太不全了
在src目錄下新建一個log4j.properties文件:
log4j.rootCategory=INFO,ROOT
log4j.category.org.springframework info,Spring
log4j.category.org.hibernate info,Hibernate
log4j.category.net.sf.ehcache INFO,Ehcache
log4j.appender.ROOT=org.apache.log4j.ConsoleAppender
log4j.appender.ROOT.layout=org.apache.log4j.PatternLayout
log4j.appender.ROOT.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss,SSS} %C{1}:%M - %m%n
log4j.appender.Spring=org.apache.log4j.ConsoleAppender
log4j.appender.Spring.layout=org.apache.log4j.PatternLayout
log4j.appender.Spring.layout.ConversionPattern=[Spring]: %-5p %d{yyyy-MM-dd HH:mm:ss,SSS} %C{1}:%M - %m%n
log4j.appender.Hibernate=org.apache.log4j.ConsoleAppender
log4j.appender.Hibernate.layout=org.apache.log4j.PatternLayout
log4j.appender.Hibernate.layout.ConversionPattern=[Hibernate]: %-5p %d{yyyy-MM-dd HH:mm:ss,SSS} %C{1}:%M - %m%n
log4j.appender.Ehcache=org.apache.log4j.ConsoleAppender
log4j.appender.Ehcache.layout=org.apache.log4j.PatternLayout
log4j.appender.Ehcache.layout.ConversionPattern=[Ehcache]: %-5p %d{yyyy-MM-dd HH:mm:ss,SSS} %C{1}:%M - %m%n
才發現問題出現在了一個對象和表的映射配置文件:hbm.xml里面。
在一個 一對多關系的時候,我將實體對象里的set<>屬性刪除了,但是對應的hbm.xml文件中相應的屬性沒刪
HOHO,問題解決^O^