cuixx1985

          2009年4月21日 #

          axis處理自定義對象

          最近的一個項目又要用到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"});
          大概代碼就這樣了^_^

          posted @ 2009-04-21 13:31 true_star 閱讀(698) | 評論 (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 {
                  
              }


          }


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

          但是重定向過去又不能保存action執行的結果,不能給browseCatalog.jsp這個頁面里的表單賦值,當然可以通過將內容放入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都會直接轉到index.jsp頁面,難道是哪里配置錯了。。。還是????



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

          2008年11月18日 #

          一個關于Jquery的問題

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

          JS中用$("#user.userid").val()這個方法的時候一直取不到這個節點的值,搞了半天沒反應,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

          網上查了半天沒有找到答案,很多人說是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^

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

          僅列出標題  
          主站蜘蛛池模板: 九台市| 内丘县| 藁城市| 怀仁县| 兰州市| 内江市| 巴里| 五华县| 修文县| 广灵县| 山阴县| 繁峙县| 文水县| 西峡县| 庐江县| 嵊州市| 西乌珠穆沁旗| 隆安县| 靖西县| 江北区| 贵溪市| 曲沃县| 巴中市| 临江市| 文安县| 射洪县| 普兰店市| 石门县| 称多县| 莲花县| 高清| 长兴县| 于都县| 利川市| 灵台县| 容城县| 开平市| 靖远县| 彰武县| 长岭县| 原平市|