cuixx1985

          2009年4月21日 #

          axis處理自定義對象

          最近的一個項目又要用到webservice(axis),上次為了趕時間完成任務,簡單的找了些例子然后就這樣用了,還好項目里本來就有對象和xml之間轉(zhuǎn)換的接口,所以要傳的對象一律轉(zhuǎn)換成xml,然后傳字符串。
                  嘗試了N久才搞定了傳輸屬性不是基本數(shù)據(jù)類型的問題。簡單帖個代碼:

          1.server-config.wsdd

           <service name="sendUser" provider="java:RPC">
                 
          <!-- 發(fā)布特定的方法,多個方法用逗號隔開 -->
                
          <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"});
          大概代碼就這樣了^_^

          posted @ 2009-04-21 13:31 true_star 閱讀(697) | 評論 (0)編輯 收藏

          2008年11月19日 #

          一個webwork過濾器的問題

          先貼代碼如下:
          1.SercurityFilter.java

          import java.io.IOException;

          import javax.servlet.Filter;
          import javax.servlet.FilterChain;
          import javax.servlet.FilterConfig;
          import javax.servlet.ServletException;
          import javax.servlet.ServletRequest;
          import javax.servlet.ServletResponse;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;

          public class SercurityFilter implements Filter{

              
          public void destroy() {
                  
              }


              
          public void doFilter(ServletRequest req, ServletResponse res,
                      FilterChain chain) 
          throws IOException, ServletException {
                  HttpServletRequest request 
          = (HttpServletRequest) req;
                  HttpServletResponse response 
          = (HttpServletResponse) res;
                  
                  String url = request.getRequestURI();
                     String name = (String) request.getSession().getAttribute("name");
                  
                    if((url.indexOf("index") == -1) && (null == name))
                  {
                      String path = request.getContextPath();
                      response.sendRedirect(path + "/index.jsp");
                  }

                  
          else
                      chain.doFilter(request, response);
              }


              
          public void init(FilterConfig arg0) throws ServletException {
                  
              }


          }


          然后問題是這樣的:
          我現(xiàn)在用戶沒登錄的時候,點擊一個超鏈接(bookAction.action)的時候,并沒有進入SercurityFilter這個里面定義的index.jsp頁面,而地址欄顯示的也是這個超鏈接的bookAction.action地址。
          而當我把bookAction對應的xwork.xml中的result里面添加 type="redirect",如下:
          <result name="browseCatalog" type="redirect">/jsp/browseCatalog.jsp</result>
          而現(xiàn)在我重新點擊這個超鏈接的時候卻能轉(zhuǎn)到index.jsp頁面,不知道這個是怎么回事?????

          但是重定向過去又不能保存action執(zhí)行的結(jié)果,不能給browseCatalog.jsp這個頁面里的表單賦值,當然可以通過將內(nèi)容放入session中進行賦值,但這樣應該不太好吧。


          web.xml代碼如下:
          <filter-mapping>
                  
          <filter-name>webwork</filter-name>
                  
          <url-pattern>/*</url-pattern>
              
          </filter-mapping>
              
              
          <filter-mapping>
                  
          <filter-name>sercurityFilter</filter-name>
                  
          <url-pattern>/jsp/*</url-pattern>
              </filter-mapping>
              



          今天晚上又做了下簡單的驗證,不知道為什么,不管我web.xml里面設置/*還是*.action,瀏覽器輸入*.action地址或者提交表單的時候都進不了這個filter里面去。而web.xml里面設置/*時,只要我輸入*.jsp都會直接轉(zhuǎn)到index.jsp頁面,難道是哪里配置錯了。。。還是????



          posted @ 2008-11-19 16:25 true_star 閱讀(1308) | 評論 (4)編輯 收藏

          2008年11月18日 #

          一個關于Jquery的問題

          今天用jquery萬能方法$()的時候,發(fā)現(xiàn)點小問題:
          頁面表單如下
          <input type="text" id="user.userid"  name="user.userid"/>

          JS中用$("#user.userid").val()這個方法的時候一直取不到這個節(jié)點的值,搞了半天沒反應,firebug一直報未定義的錯誤

          后來將表單修改了下,id="userid"
          然后用$("#userid").val()就能取到這個值

          ????????????還沒搞清楚這個是什么原因。

          posted @ 2008-11-18 11:33 true_star 閱讀(1739) | 評論 (8)編輯 收藏

          2008年11月7日 #

          tomcat日志(org.apache.catalina.core.StandardContext start)

          今天遇到一個問題,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

          網(wǎng)上查了半天沒有找到答案,很多人說是web.xml配置有問題,但是看了半天也沒發(fā)現(xiàn)到底錯在哪里。
          后來有baidu了下org.apache.catalina.startup.TldConfig這句話,才發(fā)現(xiàn)上面的提示的日志太不全了

          在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


          才發(fā)現(xiàn)問題出現(xiàn)在了一個對象和表的映射配置文件:hbm.xml里面。
          在一個 一對多關系的時候,我將實體對象里的set<>屬性刪除了,但是對應的hbm.xml文件中相應的屬性沒刪


          HOHO,問題解決^O^

          posted @ 2008-11-07 15:27 true_star 閱讀(18318) | 評論 (1)編輯 收藏

          僅列出標題  
          主站蜘蛛池模板: 东丰县| 玉树县| 琼结县| 二连浩特市| 清新县| 施甸县| 道孚县| 肇州县| 琼结县| 循化| 望江县| 富源县| 杂多县| 长白| 微博| 石景山区| 和林格尔县| 聊城市| 仙桃市| 武胜县| 永城市| 扶余县| 清原| 万州区| 杂多县| 虞城县| 陵川县| 同心县| 吉首市| 茶陵县| 科尔| 锦州市| 洪湖市| 富川| 荆门市| 恩施市| 乐昌市| 丹江口市| 化州市| 许昌县| 三门峡市|