在spring+hibernate+struts2项目中的一个 java.lang.IllegalArgumentException

  情况是这样的 :loginAction中需要用到两个业务类 UserManager TmsManager
设为私有属性后 提供set get方法 并且都在spring 配置文件中配置好了 但是调用loginAction时出现下列异常:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginAction' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy0] to required type [com.lmz.tms.manager.UserManager] for property 'userManager'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy0] to required type [com.lmz.tms.manager.UserManager] for property 'userManager': no matching editors or conversion strategy found 


这是 spring部分配置:
<bean id="userManager" class="com.lmz.tms.manager.UserManager">
       <property name="sessionFactory" ref="sessionFactory"></property>
   </bean>
   <bean id="tmsManager" class="com.lmz.tms.manager.TmsManage">
       <property name="sessionFactory" ref="sessionFactory"></property>
   </bean>
   <bean id="loginAction" class="com.lmz.tms.action.LoginAction" scope="prototype" >
  <property name="userManager" ref="userManager"></property>
  <property name="tmsManager"  ref="tmsManager"></property>
   </bean>
   <bean id="addAction" class="com.lmz.tms.action.AddAction" scope="prototype">
     <property name="tmsManager" ref="tmsManager"></property>
   </bean>


问题补充:jjjssh 写道看下你导的包,有没重复,有重复就删掉一个。如果没有就试下这个方法,在loginAction里面把private UserManager userManager;改为由她的接口做为类型,即:
比如IUserManager为UserManager的接口,则userManager的定义为:
private IUserManager userManager

谢谢

我试下

回答: 在spring+hibernate+struts2项目中的一个 java.lang.IllegalArgumentException

  1. 看下你导的包,有没重复,有重复就删掉一个。如果没有就试下这个方法,在loginAction里面把private UserManager userManager;改为由她的接口做为类型,即:
    比如IUserManager为UserManager的接口,则userManager的定义为:
    private IUserManager userManager

关于如何在项目中写一个可供外部调用的webservice接口

  1. Q
    大家好!
    最近有个任务,,就是在已经存在的java项目中写一个可供外部调用的webservice接口。就是让别人调用我写好的接口,传送数据。小弟之前没有接触过webservice。在网上也搜了许多教程,可是看的不怎么明白。哪位大哥指点一下,最好是详细些。给个详细的教程地址也中!小弟在这里感激不尽!!!名字是我的QQ。方便的话加我QQ也行。全天在线。
  2. A
    直接用JAVA规范的 JAX-WS就是了 楼上的两个OUT了。

EXTJS2.0,项目中增加一个简单需求,新加一个下拉框选中数据后显示在原有的文本域中

  1. Q

    小弟初时EXTJS,项目中碰到一个小问题,就是要增加一个下拉框,选中里面的数据后,显示在文本域中,不知道怎么写,写了多次都报EXT-all-dub.js的错误。
    附件中有关于这个操作的图片。。。谢谢了。
    原代码:

    xtype:"window",
     title:"任务派遣",
     width:500,
     modal:true,
     height:400,
     layout:"fit",
     initComponent: function(){
      orgWindow = new HM.orgWindow({rootId:this.rootOrg, withUser:false,rootText:this.rootOrgText,singleSelect:true,onSave:function(o){
        this.form.getForm().findField("sendOrg").setValue(o.tree.getValue());
        this.form.getForm().findField("_sendOrg").setValue(o.tree.getValue("text"));
        o.hide();
       }.createDelegate(this)
      });
      orgWindow2 = new HM.orgWindow({rootId:this.rootOrg, withUser:false,rootText:this.rootOrgText,onSave:function(o){
        this.form.getForm().findField("assistOrg").setValue(o.tree.getValues());
        this.form.getForm().findField("_assistOrg").setValue(o.tree.getValues(null,"text"));
        o.hide();
       }.createDelegate(this)
      });
      this.form = new Ext.form.FormPanel({
          xtype:"form",
          title:"",
          labelWidth:80,
          labelAlign:"right",
          layout:"form",
          region:"center",
          items:[{
            xtype:"hidden",
            name:"sendOrg"
           },{
            xtype:"hidden",
            name:"assistOrg"
           },{
            layout:"column",
            anchor:"100%",
            items:[{
             layout:"form",
             columnWidth:.85,
             items:[{
              xtype:"textfield",
              fieldLabel:"主办部门",
              allowBlank:false,
              name:"_sendOrg",
              readOnly :true,
              anchor:"95%",
              listeners:{
               focus:orgWindow.show.createDelegate(orgWindow)
              }
             }]
             },{
              columnWidth:.12,
              items:[{
               xtype:"button",
               text:"选择",
               //icon:rootPath + '/images/commons/orgempty.png',
               handler:function(){orgWindow.show()}
             }]
            }]
           },{
            layout:"column",
            anchor:"100%",
            items:[{
             layout:"form",
             columnWidth:.85,
             items:[{
              xtype:"textfield",
              fieldLabel:"协办部门",
              name:"_assistOrg",
              readOnly :true,
              anchor:"95%",
              listeners:{
               focus:orgWindow2.show.createDelegate(orgWindow2)
              }
             }]
             },{
              columnWidth:.12,
              items:[{
               xtype:"button",
               text:"选择",
               //icon:rootPath + '/images/commons/orgempty.png',
               handler:function(){orgWindow2.show()}
             }]
            }]
           },
           {
           
            xtype:"textfield",
            fieldLabel:"派遣常用语",
            name:"habitwords",
            anchor:"95%",
            height:20
           
           },
           {
            xtype:"textarea",
            fieldLabel:"派遣意见",
            maxLength:500,
            name:"opinion",
            anchor:"95%",
            height:200
           },
           {
            xtype:"datefield",
            fieldLabel:"完成截止时间",
            allowBlank:false,
            format : 'Y-m-d H:i',
            menu:new DatetimeMenu(),
            name:"rollEndTime",
            anchor:"95%"
           }
          ]
         });
      this.items=[
       {
        xtype:"panel",
        title:"",
        autoScroll:true,
        frame:true,
        layout:"border",
        items:[
         this.form
        ]
       }
      ];
      this.buttons = [{
       text:"确定",
       handler:function(){
        if(this.form.getForm().isValid()){
         if(this.form.getForm().findField('rollEndTime').getValue().getTime()<new Date().getTime()){
          Ext.Msg.alert("提示", "完成截止时间不能早于当前时间!");
          return;
         }
         this.submit();
        }
       },
       scope:this
      },{
       text:"关闭",
       handler:function(){
        this.hide();
       },
       scope:this
      }]
      HM.workflow.sendWindow.superclass.initComponent.call(this);
     }

  2. A
    那你就新加一个下拉框呗,加一个select监听,把value设置到相应的表单中就可以了

    combo必须指定一个Ext.data.Store对象或其子类的对象(或数组),必须指定displayField和valueField

    {
      xtype:"combo",
      store:store,
      displayField:"text",
      valueField:"text",
      name:"combo",
      fieldLabel:"",
      triggerAction:"all",
      listeners : {
        select : function(v){
          this.form.getForm().findField("xxx").setValue(v);
        },
        scope : this
      }
    }

Spring MVC 3 项目中的URL如何导出

  1. Q
    项目采用Spring MVC3实现的RESTFUL风格的访问模式,我想将所有通过@RequestMapping注入的URL导出,在Spring Tools中可以全部查看到项目中的所有URL(入下图),但是没有导出功能。请问各位有没有什么好的处理方式?
    Spring MVC 3 项目中的URL如何导出
  2. A
    要不就自己写一个?写一个servlet继承DispatcherServlet,在初始化方法中添加代码,循环 DispatcherServlet中的 private List<HandlerMapping> handlerMappings;这个list中放有所有的url映射信息(包括拦截器),如果handlerMapping为AbstractUrlHandlerMapping,循环private final Map<String, Object> handlerMap = new LinkedHashMap<String, Object>();打印,或者生成你想要的文件。

struts2项目中jsp页面中嵌入fckeditor时编辑器的工具条显示乱码

  1. Q

    项目中使用struts2和spring,web.xml中配置的字符集过滤器编码是GBK,fckeditor的字符集编码是utf-8,导致冲突,该如何解决?现在的问题是项目中很多地方用的字符集编码是gbk,如js文件等,不能直接修改web.xml,有什么其他的解决方法吗?求赐教!

    下面是web.xml配置:

     

    <!-- 编码处理过滤器 -->
    	<filter>
    		<filter-name>encodingFilter</filter-name>
    		<filter-class>
    			org.springframework.web.filter.CharacterEncodingFilter
    		</filter-class>
    		<init-param>
    			<param-name>encoding</param-name>
    			<param-value>GBK</param-value>
    		</init-param>
    		<init-param>
    			<param-name>forceEncoding</param-name>
    			<param-value>true</param-value>
    		</init-param>
    	</filter>
    	<filter-mapping>
    		<filter-name>encodingFilter</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>

     


    问题补充:页面中嵌入fckeditor的方式是: <iframe id="description___Frame" src="/script/fckeditor/editor/fckeditor.html?InstanceName=description&amp;Toolbar=Basic"
    width="100%" height="220" frameborder="no" scrolling="no"></iframe>
  2. A
    最好是同一编码,都用utf-8。
    不过如果双方都不能改,建议google一下iframe乱码,好多解决方案。
    推荐:http://blog.csdn.net/chrisniu1984/article/details/3928929

在ssh项目中,把一个word文件上传到数据库的blob中,如何读取出来

  1. Q
    在ssh项目中,把一个word文件上传到数据库的blob中,如何读取出来

    mysql中的blob只能存放图片吗?要是能存别的格式的文件的话,怎么打开啊?
    问题补充:那怎么才能直接打开这个word文档呢
  2. A
    问题补充:
    那怎么才能直接打开这个word文档呢 
    
    
    你读出来写成world文件啊···xx.doc   ,应该这样可以吧·· 
    
    BufferedOutputStream bos = new BufferedOutputStream(  
                            new FileOutputStream("/xx.doc "));  
      


strtus2+spring+hibernate 开发系统中的工作流问题讨论

  1. Q
        最近要做一个项目,系统中的一个模块是要求不同用户登录系统后,可直接看到今天要做哪些事情,这些任务需要系统自动分配,根据自己的部门和职务(角色),看到的工作任务(一个客户资料有几个人不同阶段处理)也不一样,由于具体业务是分有先后顺序,前面工作的人的相关记录资料后面的工作的人员登录系统后要看得到,同时前面的工作人员处理完后这个客户资料要流到下一个部门去,前面部门的人员的任务盒子里不在有这个客户资料,就这样,客户资料一直根据不同部门往下流,当然一个部门每天可以拿到很多客户资料要处理,这时同一部门的人员的资料盒子要由系统自动分配相关资料给工作人员,这样一来,工作人员只要登录系统后就知道今天该干嘛干嘛了。
         用SSH框架+SQL SERVER 2005,由于存储过程不会写,也不知道具体怎么使用,所以在设计表时我准备设计多张相同结构的客户资料表,一个部门一张资料表,这样当资料进入公司总资料库后,分到A部门表,当A部门工作处理完后,资料入库到B部门表,同时清除A部门表的内容,一天工作结束后,当分配给A部门的工作人员的某些资料没有开始处理,这些资料还要丢到公司资料库中,正在处理但未处理完的还在自己的资料库中,来日继续处理,这样一直流下去直到客户资料完全处理完毕。我这样设计貌似可以实现需求,但是感觉这样设计不是怎么好,真要实现起来,估计写代码有一定的难度。各位同仁帮忙看看出出招。再此谢过。
  2. A
    o 随机的啊 你的意思是被领过的任务就不能被别人再领了被 那就在表里加个标记嘛

Struts2.0 SSh整合出现java.lang.NullPointerException

  1. Q
    java.lang.NullPointerException
     at com.action.GoodsAction.insert(GoodsAction.java:20)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
     at java.lang.reflect.Method.invoke(Unknown Source)
     at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
     at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActi
    

     我的action方法为

    public class GoodsAction {
    	com.service.GoodsService goodsService;
    	public com.service.GoodsService getGoodsService() {
    		return goodsService;
    	}
    	public void setGoodsService(com.service.GoodsService goodsService) {
    		this.goodsService = goodsService;
    	}
    	
    		HttpServletRequest request=ServletActionContext.getRequest();
    	public String insert(){
    		try{
    		com.pojo.JxcGoods good=new com.pojo.JxcGoods();
    		int id=Integer.parseInt(request.getParameter("goods_id"));
    		String name=request.getParameter("goods_name");
    		System.out.print(name);
    		String type=request.getParameter("goods_type");
    		String unit=request.getParameter("goods_unit");
    		String adress=request.getParameter("goods_adress");
    		String text=request.getParameter("goods_info");
    		good.setGoodsId(id);
    		good.setGoodsName(name);
    		good.setGoodsType(type);
    		good.setGoodsUnit(unit);
    		good.setGoodsText(text);
    		good.setGoodsAddress(adress);
    		good.setTag(1);
    		this.goodsService.insert(good);
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		return "su";
    	}
    
    }

     

    为什么总是报空指针 我的都已经注入了。求教


    问题补充:下面的是注入applicationContext:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation"
    value="classpath:hibernate.cfg.xml">
    </property>
    </bean>
    <!-- 事务处理设置 -->
    <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
    <ref local="sessionFactory" />
    </property>
    </bean>
    <!-- 所有方法使用PROPAGATION_REQUIRED类型的事务 -->
    <bean id="interceptorTransaction"
    class="org.springframework.transaction.interceptor.TransactionInterceptor">
    <property name="transactionManager">
    <ref local="transactionManager" />
    </property>
    <property name="transactionAttributes">
    <props>
    <prop key="*">PROPAGATION_REQUIRED</prop>
    </props>
    </property>
    </bean>
    </beans>
    这个是另一个bean.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="daoT" abstract="true">
    <property name="sessionFactory">
    <ref bean="sessionFactory" />
    </property>
    </bean>
    <bean id="goodsDao" class="com.dao.GoodsDao"
    parent="daoT">
    </bean>
    <bean id="goodservice" class="com.service.GoodsService">
    <property name="goodsDao">
    <ref local="goodsDao"/>
    </property>
    </bean>


    </beans>
    com.service的包:
    package com.service;

    public class GoodsService {
    com.dao.GoodsDao goodsDao;

    public com.dao.GoodsDao getGoodsDao() {
    return goodsDao;
    }

    public void setGoodsDao(com.dao.GoodsDao goodsDao) {
    this.goodsDao = goodsDao;
    }

    public void insert(com.pojo.JxcGoods goods){
    this.goodsDao.insert(goods);
    }
    }
    com.dao方法的包:
    public class GoodsDao extends HibernateDaoSupport{

    public void insert(com.pojo.JxcGoods goods){
    this.getHibernateTemplate().save(goods);
    }
    }
  2. A
    没有注入吧。 都没有看到配置GoodsAction 的bean。。

axis2集成Spring服务发布成功,访问时出java.lang.NullPointerException

  1. Q
    我集成了Spring的Axis web服务显示发布成功,能看到http://localhost:8080/axisSpring/services/TestSpringHello?wsdl页面,但是写一个类调用这个服务时出错。
    我写的调用类是:
    package study;
    
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    
    public class TestClient {
    	
    	public static void main(String[] args) throws Exception {
    		
    
    		// 指出service所在URL
    
    		String endpoint = "http://localhost:8080/axisSpring/services/TestSpringHello";
    
    		// 创建一个服务(service)调用(call)
    
    		Service service = new Service();
    
    		Call call = (Call) service.createCall();// 通过service创建call对象
    
    		// 设置service所在URL
    
    		call.setTargetEndpointAddress(new java.net.URL(endpoint));
    
    		// 方法名(processService)与MyService.java方法名保持一致
    
    		call.setOperationName("response");
    
    		// Object 数组封装了参数,参数为"This is Test!",调用processService(String arg)
    
    		String ret = (String) call.invoke(new Object[] { "你好" });
    
    		System.out.println(ret);
    
    	}
    
    }
    

    引用
    报的异常为(是在String ret = (String) call.invoke(new Object[] { "你好" });的那行出的错):

    Exception in thread "main" AxisFault
     faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
     faultSubcode: 
     faultString: java.lang.NullPointerException
     faultActor: 
     faultNode: 
     faultDetail: 
    	{http://xml.apache.org/axis/}hostname:HYAS-BCC2CBB787
    
    java.lang.NullPointerException
    	at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
    	at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
    	at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
    	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633)
    	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
    	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
    	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
    	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
    	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
    	at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
    	at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    	at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
    	at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
    	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
    	at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    	at org.apache.axis.client.Call.invoke(Call.java:2767)
    	at org.apache.axis.client.Call.invoke(Call.java:2443)
    	at org.apache.axis.client.Call.invoke(Call.java:2366)
    	at org.apache.axis.client.Call.invoke(Call.java:1812)
    	at study.TestClient.main(TestClient.java:37)
    
    


    引用
    我写的服务类是

    package study;
    
    public class TestSpringHello{
    	
    	private Test myBean;
    	
    	public void setMyBean(Test myBean){
    		this.myBean = myBean;
    	}
    	
    	public String response(String aaa){
    		
    		return myBean.echo() + "Christmas" + aaa;
    	}
    }
    



    我该这么做才能解决这个问题呢?多谢了。
  2. A
      这么长的代码,你还不如自己单步调试 就出来了,看看哪个值为nullaxis2集成Spring服务发布成功,访问时出java.lang.NullPointerException

spring求助,,错误StandardWrapper.Throwable java.lang.NoClassDefFoundError:

  1. Q
    013-1-29 21:47:34 org.apache.catalina.core.ApplicationContext log
    严重: StandardWrapper.Throwable
    java.lang.NoClassDefFoundError: org/springframework/beans/factory/NoUniqueBeanDefinitionException
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
    at java.lang.Class.getDeclaredMethods(Class.java:1791)
    at org.springframework.core.type.StandardAnnotationMetadata.hasAnnotatedMethods(StandardAnnotationMetadata.java:159)
    at org.springframework.context.annotation.ConfigurationClassUtils.isLiteConfigurationCandidate(ConfigurationClassUtils.java:106)
    at org.springframework.context.annotation.ConfigurationClassUtils.checkConfigurationClassCandidate(ConfigurationClassUtils.java:87)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:233)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:203)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:622)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588)
  2. A
    看看是不是spring相关的jar没有全部导入