2009年4月21日
#
最近的一個(gè)項(xiàng)目又要用到webservice(axis),上次為了趕時(shí)間完成任務(wù),簡單的找了些例子然后就這樣用了,還好項(xiàng)目里本來就有對(duì)象和xml之間轉(zhuǎn)換的接口,所以要傳的對(duì)象一律轉(zhuǎn)換成xml,然后傳字符串。
嘗試了N久才搞定了傳輸屬性不是基本數(shù)據(jù)類型的問題。簡單帖個(gè)代碼:
1.server-config.wsdd
<service name="sendUser" provider="java:RPC">
<!-- 發(fā)布特定的方法,多個(gè)方法用逗號(hào)隔開 -->
<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萬能方法$()的時(shí)候,發(fā)現(xiàn)點(diǎn)小問題:
頁面表單如下
<input type="text" id="user.userid" name="user.userid"/>
JS中用$("#user.userid").val()這個(gè)方法的時(shí)候一直取不到這個(gè)節(jié)點(diǎn)的值,搞了半天沒反應(yīng),firebug一直報(bào)未定義的錯(cuò)誤
后來將表單修改了下,id="userid"
然后用$("#userid").val()就能取到這個(gè)值
????????????還沒搞清楚這個(gè)是什么原因。
2008年11月7日
#
今天遇到一個(gè)問題,tomcat啟動(dòng)的時(shí)候一直報(bào)錯(cuò):
2008-8-1 9:31:29 org.apache.catalina.core.StandardContext start
嚴(yán)重: Error in resourceStart()
2008-8-1 9:31:29 org.apache.catalina.core.StandardContext start
嚴(yán)重: Error getConfigured
網(wǎng)上查了半天沒有找到答案,很多人說是web.xml配置有問題,但是看了半天也沒發(fā)現(xiàn)到底錯(cuò)在哪里。
后來有baidu了下org.apache.catalina.startup.TldConfig這句話,才發(fā)現(xiàn)上面的提示的日志太不全了
在src目錄下新建一個(gè)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
才發(fā)現(xiàn)問題出現(xiàn)在了一個(gè)對(duì)象和表的映射配置文件:hbm.xml里面。
在一個(gè) 一對(duì)多關(guān)系的時(shí)候,我將實(shí)體對(duì)象里的set<>屬性刪除了,但是對(duì)應(yīng)的hbm.xml文件中相應(yīng)的屬性沒刪
HOHO,問題解決^O^