如何把多个app功能整合到一个app里?

我在做毕设,前期作死,后期着急了,学了一点Android开发知识发现根本不够用。
现在从网上找了app要实现的功能的单个app支持,现在的工作就是把这几个app的功能整合起来,但是发现困难挺大。
老是报错,有没有好心人可以粗来帮忙指点一下!!
不胜感激! 271268420@qq.com是我的邮箱。。

11个回答

那几个App是你们公司的还是你们要集成的别的公司的啊,如果是自己公司的工程,作为一个jar包整合起来比较好

把几个app的功能点一个一个的剥离出来(class、xml、jar包等等),然后贴到你的新的项目中。

u013168885
我最摇摆君 但是会报错。。我是小白 才学了半个月 有个错误解决不了。。
接近 5 年之前 回复

亲,这个还是要做代码上的工作的,听你的意思你android学的应该是一知半解吧,你应该找这些功能实现的源码来拼接一下,但是调试必然是一项艰巨而又烦人的工作,没有办法在不调代码的情况下完成你要的效果,我也是学生,android基本是自学的,我只能说这样的情况,重在调试吧,错误提示信息利用好,问度娘,慢慢改吧,网上提示都挺全的,我二十几天从头开始学已经做出一个购物系统了,沉下心来这不是什么问题

那几个App是你们公司的还是你们要集成的别的公司的啊,如果是自己公司的工程,作为一个jar包整合起来比较好

u013168885
我最摇摆君 我没有公司。。 我是大学生,现在要做毕业设计是这个东西。 是要把这个app的功能弄到一个app里 。。
接近 5 年之前 回复

我没有公司。。 我是大学生,现在要做毕业设计是这个东西。
是要把这个app的功能弄到一个app里 。。

可以先创建一个Android的框架工程,然后设置一些需要集成的单个App项目的启动方式,然后再框架工程中配置需要集成的app项目

如果只是简单的想要将他们融合在一个app的话可以将每个app作为一个Library使用,建立一个项目去使用这些Library.

可以把一个APP作为资源库 让另外一个引用

楼主,我也是做毕设,跟你情况差不多,你最后是怎么完成的

loony117
loony117 回复weixin_44289758: 老哥,你解决了吗??我也是在这个问题
9 个月之前 回复
weixin_44289758
weixin_44289758 请问你实现了吗?怎么实现的呢?
10 个月之前 回复

但凡是app的东西就会有类似容器的东西,在复杂的app都是在容器中,可以做成容器管理容器的模式,父类容器就是最大的容器,子类容器就是单个app,不知道这么说你能不能明白

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何简单的整合多个app?
最近在做开题报告,我想写做一个整合app的项目。就是简单的整合,设计一个主app,立面有很多按钮,子app整合在主app中。比如在主app中,我点击一下洗衣按钮,就开启洗衣app,点击接水,就打开接水app。请问这怎么实现呢??谢谢大家
关于多个rails app整合?
我们都知道,PHP,ASP网站多个app整合比较简单,比如已有一个site,需要增加一个bbs,只需要在site下增加一个bbs目录,就可以独立安装bbs并正常运行。 问题来了:如果我用rails做好了一个网站site,现在我需要把例如Beast之类的bbs整合进site,有没有什么好的办法? 自己重新写代码毕竟要花点时间..呵呵 谢谢大家!!!
多ICON启动具有不同实例的同一个APP?
描述: 我的应用需要有很多本地资料,启动过程这样:AcitivityA(资料初始化,完毕后跳转)--->AcitivityB(查询显示),退出相反,不存在中间其他过程 APK在Launcher上有多个入口: 入口1,对应本地资料1 入口2,对应本地资料2 现在问题出来了:我从入口1进入后,看到的是资料1,按键home后,返回到桌面,从入口2进,现在的资料却还是资料1,为什么?怎么解决? 以前的做法: 对入口1,2...做成不能APK,启动后Intent绑定不同内容,启动目标应用,目标应用从Intent中取到内容,然后再AcitivityA(资料初始化,完毕后跳转)--->AcitivityB(查询显示) 我现在想把他们整合到一起去,统一管理比较好 我的标题是不是写错了?
Spark中如何将多个LabeledPoint合并成一个LabeledPoint,用以训练分类模型
使用pyspark.mllib,对几个用textFile读取的RDD(a,b,c,d)打标签 ``` A = a.map(lambda features:LabeledPoint(0.0,features)) B = b.map(lambda features:LabeledPoint(1.0,features)) C = c.map(lambda features: LabeledPoint(2.0,features)) D = d.map(lambda features:LabeledPoint(3.0,features)) ``` 现在如何将A,B,C,D四个整合成为一个训练数据集,或保存为LibSVMFile再读取,用来作为机器学习分类模型的训练数据集呢? 网上很多都是临时创建的LabeledPoint(label,Vectors.dense(features)),这样确实可以用一个变量表示。 但对于多个这样的要怎么合成一个变量表示呢,用union会出错。 ``` traindata = A.union(B) traindata = data.union(C) traindata = data.union(D) ``` 或者 ``` traindata = A.union([B,C,D]) ``` 都会出错,包括《Spark快速大数据分析》书上源码试过,用union都不行。 ``` Traceback (most recent call last): File "/home/hadoop/Desktop/app.py", line 36, in <module> data = normalFea.union([icmpFea,synFea,udpFea]) File "/opt/spark-2.3.2-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/rdd.py", line 557, in union AttributeError: 'list' object has no attribute '_jrdd_deserializer' ``` 这个报错是针对第二种的,第一种也会报错。求大神解答。。
spring mvc datajpa整合时出现找不到类的情况,百度了很多都没有解决问题。
用srping mvc和jpa写一个helloworld,没想到还跑不起来 不知道哪里出错了,可能是配置没做好,这里还请大家帮忙看看是什么没问题。 下面是我的代码: 这是个controller ``` package com.ll.together.controller; import com.ll.together.service.LoginBQqService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HelloWorldController { @Autowired public LoginBQqService loginBq; @RequestMapping("/hello.htm") @ResponseBody public String hello() { loginBq.findAll(); return "mysldks"; } } ``` 下面是 LoginBQqService ``` package com.ll.together.service; import com.ll.together.entity.QqUser; import org.springframework.data.repository.CrudRepository; /** * Created by xiaolongren on 15/6/13. */ public interface LoginBQqService extends CrudRepository<QqUser,String> { } 下面是applicationcontext.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" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd" > <context:annotation-config/> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> <property name="persistenceUnitName" value="marry"/> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory"/> </bean> <tx:annotation-driven transaction-manager="transactionManager"/> <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"> </bean> <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"> </bean> <tx:annotation-driven transaction-manager="transactionManager"/> <task:annotation-driven/> <jpa:repositories base-package="com.ll.together.service" transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory"/> </beans> 下面是dispatcher-servlet.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" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd" > <mvc:annotation-driven/> <context:annotation-config/> <context:component-scan base-package="com.ll.together"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/page/"/> <property name="suffix" value=".jsp"/> </bean> </beans> ``` 下面是web.xl ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="3.1"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> </web-app> ``` 访问:http://localhost:8080/hello.htm报错 [2015-06-21 12:46:48,471] Artifact spingjpa:war exploded: Artifact is being deployed, please wait... 21-Jun-2015 12:46:50.950 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.DispatcherServlet.initServletBean FrameworkServlet 'dispatcher': initialization started 21-Jun-2015 12:46:50.980 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.context.support.XmlWebApplicationContext.prepareRefresh Refreshing WebApplicationContext for namespace 'dispatcher-servlet': startup date [Sun Jun 21 12:46:50 CST 2015]; root of context hierarchy 21-Jun-2015 12:46:51.026 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions Loading XML bean definitions from ServletContext resource [/WEB-INF/dispatcher-servlet.xml] 21-Jun-2015 12:46:52.080 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.registerHandlerMethod Mapped "{[/hello.htm],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.ll.together.controller.HelloWorldController.hello() 21-Jun-2015 12:46:52.082 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.registerHandlerMethod Mapped "{[/hh],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.ll.together.controller.UserController.index() java.lang.NoClassDefFoundError: org/springframework/data/repository/CrudRepository
shiro+cas 多模块登录问题
现在我们项目的web端跟app端 访问的路径都是localhost:8181/a/login 。框架用的jeesite,权限控制是shiro,现在我整合cas进去,拦截登录url的时候,web端正常跳转到配置的页面,但是app也被拦截的话就直接报错登录不了了,我估计是跳转页面肯定是会报错。我现在需要这两个不同渠道的登录,cas需要怎么配置?
各位大咖老师们,有关算法&模型的问题指教!!!
我们企业的APP上有很多个人用户和企业用户,这些用户会在我们的APP上发布相关的行业、所在地、职位、薪资等信息,我们想针对这些职位和薪酬范围数据进行数据整合,最终达到让求职者或者企业可以通过界面输入职位信息(地区、行业、职能、技能要求)就能推断出合理的薪酬区间。 请问,这个方案的算法和模型怎么建立啊?后端的数据库,和前端展示给用户的界面,可以同步操作吗?
各位大咖老师们请指教,关于算法&模型的问题
我们企业的APP上有很多个人用户和企业用户,这些用户会在我们的APP上发布相关的行业、所在地、职位、薪资等信息,我们想针对这些职位和薪酬范围数据进行数据整合,最终达到让求职者或者企业可以通过界面输入职位信息(地区、行业、职能、技能要求)就能推断出合理的薪酬区间。 请问,这个方案的算法和模型怎么建立啊?后端的数据库,和前端展示给用户的界面,可以同步操作吗?
SSH整合初步成功,添加新内容后出错:There is no Action mapped for action name *
SSH整合,Spring2.5+struts2.0.14+hibernate3.3. 第一次整合的时候用Login登陆功能测试成功,后来添加一个基本信息添加的功能之后,出错信息如下: 2010-03-15 17:12:25,281 ERROR [org.apache.struts2.dispatcher.Dispatcher] - Could not find action or result There is no Action mapped for action name CarinfoInput. - [unknown location] 按出错信息提示应该是Action mapped不对,但是相同的方法,Login.do又可以用! 附上 [color=blue]web.xml[/color] <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> [color=blue]struts.xml[/color] <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.i18n.edcoding" value="UTF-8"></constant> <constant name="struts.action.extension" value="do"></constant> <constant name="struts.configuration.xml.reload" value="true"></constant> <constant name="struts.devMode" value="true"></constant> <constant name="struts.objectFactory" value="spring"></constant> <constant name="struts.locale" value="en_GB"></constant> <package name="guangyuanoa" extends="struts-default" namespace="/"> <global-results> <result name="error">/WEB-INF/error.jsp</result> <result name="success">/WEB-INF/main.jsp</result> </global-results> [color=red]<action name="Login" class="loginAction" method="login"> <result name="haslogin">/framesets.jsp</result> <result name="input">/index.jsp</result> </action>[/color] <action name="index"> <result>/index.jsp</result> </action> [color=red]<action name="CarinfoInput" class="carinfoAction" method="input"> <result name="inputsuccess">/commonjsp/inputsuccess.jsp</result> <result name="inputfalse">/commonjsp/inputfail.jsp</result> </action>[/color] </package> </struts> [color=blue]carinput.jsp[/color] …… <form action="CarinfoInput.do" method="post"> …… [color=blue]login.jsp[/color]…… <form method="post" action="Login.do"> …… 检查很多次都发现不了错误的地方。。。 不胜感激!!
xmemcached和整合SSM框架 单元测试没问提 项目启动后造成mybatis连接不到数据库?
路径是没问提的 本来一切正常 我在原来的基础上整合了memcached。 memcached测试链接对数据进行操作没问题 但是项目运行起来以后 mybatis无法链接数据库; 注释掉memcached配置 就会回复正常 ## memcached.xml <!-- properties config --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="order" value="1" /> <property name="ignoreUnresolvablePlaceholders" value="true" /> <property name="locations"> <list> <value>classpath:config/memcached.properties</value> </list> </property> </bean> <!-- Memcached配置 --> <!-- p:connectionPoolSize="${memcached.connectionPoolSize}" p:failureMode="${memcached.failureMode}" --> <bean id="memcachedClientBuilder" class="net.rubyeye.xmemcached.XMemcachedClientBuilder"> <constructor-arg> <list> <bean class="java.net.InetSocketAddress"> <constructor-arg> <value>${memcached.server1.host}</value> </constructor-arg> <constructor-arg> <value>${memcached.server1.port}</value> </constructor-arg> </bean> </list> </constructor-arg> <constructor-arg> <list> <value>${memcached.server1.weight}</value> </list> </constructor-arg> <property name="commandFactory"> <bean class="net.rubyeye.xmemcached.command.TextCommandFactory" /> </property> <property name="sessionLocator"> <bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator" /> </property> <property name="transcoder"> <bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder" /> </property> <property name="connectionPoolSize" value="${memcached.connectionPoolSize}" /> <property name="failureMode" value="${memcached.failureMode}" /> </bean> <!-- Use factory bean to build memcached client --> <bean id="memcachedClient" factory-bean="memcachedClientBuilder" factory-method="build" destroy-method="shutdown" /> ## mybatis <!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:config/jdbc.properties" /> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> <!-- 初始化连接大小 --> <property name="initialSize" value="${initialSize}"></property> <!-- 连接池最大数量 --> <property name="maxActive" value="${maxActive}"></property> <!-- 连接池最大空闲 --> <property name="maxIdle" value="${maxIdle}"></property> <!-- 连接池最小空闲 --> <property name="minIdle" value="${minIdle}"></property> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="${maxWait}"></property> </bean> <!--spring与mybatis整合 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:mapping/**/*.xml"> </property> <!-- 全局配置 --> <!-- 若不保留mybatis配置文件用上面那条替换这一条 --> <!-- <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/> --> <!-- mybatis配置文件路径 --> <property name="configLocation" value="classpath:/config/spring/mybatis.xml" /> </bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 扫描包路径,需要扫描多个包中间用逗号隔开 --> <property name="basePackage" value="com.ysjian.bud.app.dao,com.ysjian.bud.backstage.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> ## 运行错误信息 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.) Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371) at com.sun.proxy.$Proxy16.delete(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.delete(SqlSessionTemplate.java:268) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:57) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52) at com.sun.proxy.$Proxy34.deleteSayHi(Unknown Source) at appLoginTest.BUDTest.Test1(BUDTest.java:46) 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 org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:232) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:175) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:539) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:761) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:461) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:207) Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.) Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.) at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:26) at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:154) at org.apache.ibatis.session.defaults.DefaultSqlSession.delete(DefaultSqlSession.java:165) 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 org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358) ... 34 more Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:81) at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:279) at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:72) at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:47) at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:105) at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:71) 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 org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62) at com.sun.proxy.$Proxy54.update(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:152) ... 40 more Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) ... 54 more Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) at com.mysql.jdbc.Util.getInstance(Util.java:384) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:973) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918) at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2405) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2326) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221) ... 57 more Caused by: java.sql.SQLException: Access denied for user 'DELL'@'localhost' (using password: YES) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:926) at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1748) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1288) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2506) at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2344) ... 71 more
tomca项目共享jar后,strust出错
原本在tomcat里面的很多ssh开发的项目,在WEB-INF/lib中都有一份ssh的jar包。 这样方法区加载的类占了很多内存。 现在改成,在tomcat中设置一个共享jar包的地方,所用项目的ssh框架的jar包都从这里读出来。 现在有一个项目是用了struts,hibernate,但是没有用spring。 在tomcat启动的时候,struts加载失败,提示这个项目struts和spring整合了,我要为这个项目加入spring的监听器。可是这个项目我都没配置过spring,也没用到spring。 错误日志: ``` 06-Nov-2016 20:11:45.127 INFO [localhost-startStop-1] com.opensymphony.xwork2.util.logging.commons.CommonsLogger.info Initializing Struts-Spring integration... 06-Nov-2016 20:11:45.128 SEVERE [localhost-startStop-1] com.opensymphony.xwork2.util.logging.commons.CommonsLogger.fatal ********** FATAL ERROR STARTING UP STRUTS-SPRING INTEGRATION ********** Looks like the Spring listener was not configured for your web app! Nothing will work until WebApplicationContextUtils returns a valid ApplicationContext. You might need to add the following to web.xml: <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 06-Nov-2016 20:11:45.154 SEVERE [localhost-startStop-1] com.opensymphony.xwork2.util.logging.commons.CommonsLogger.error Dispatcher initialization failed java.lang.NullPointerException at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:245) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:608) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:578) ``` 项目的web.xml ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>WeMall4.0</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> ```
struts2-2.2.1+hibernate3.3.1+spring2.5.6整合
我首先整合的hibernate和spring,通过测试是成功的。然后开始struts2的整合,出现错误,请各位帮忙看下,是怎么个情况?涉及到的配置文件和错误如下: [color=darkred][b]web.xml[/b][/color] <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <!-- 指定spring的配置文件路径 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- 实例化spring容器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> =============================================================================================== [color=darkred][b]spring配置文件applicationContext.xml[/b][/color] <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <context:component-scan base-package="com.ssh"></context:component-scan> <!-- 配置数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="org.gjt.mm.mysql.Driver"></property> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8"></property> <property name="user" value="root"></property> <property name="password" value="root"></property> <property name="initialPoolSize" value="1"></property> <property name="minPoolSize" value="1"></property> <property name="maxPoolSize" value="300"></property> <property name="maxIdleTime" value="60"></property> <property name="acquireIncrement" value="5"></property> <property name="idleConnectionTestPeriod" value="60"></property> </bean> <!-- 配置sessionFactory --> <bean id="sf" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="mappingResources"> <list> <value>com/ssh/bean/Employee.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <value> hibernate.dialect=org.hibernate.dialect.MySQL5Dialect hibernate.hbm2ddl.auto=update hibernate.show_sql=true hibernate.format_sql=false </value> </property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sf"></property> </bean> <tx:annotation-driven transaction-manager="txManager"/> <bean id="employeeservice" class="com.ssh.service.EmployeeService"></bean> </beans> ==================================================================================================== [color=darkred][b]struts.xml[/b][/color] <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- <constant name="struts.objectFactory" value="spring"></constant>--> <package name="employee" namespace="/employee" extends="struts-default"> <action name="list" class="ermployeeAction"> <result name="list">WEB-INF/page/employee.jsp</result> </action> </package> </struts> =============================================================================================== 错误: Context initialization failed - <2011-03-11 12:23:39,765> ERROR (ContextLoader.java:215) org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'employeeAction': Injection of resource fields failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.ssh.impl.EmployeeImpl] is defined: expected single matching bean but found 2: [employeeService, employeeservice] at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessAfterInstantiation(CommonAnnotationBeanPostProcessor.java:292) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:959) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022) at org.apache.catalina.core.StandardHost.start(StandardHost.java:736) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:448) at org.apache.catalina.core.StandardServer.start(StandardServer.java:700) at org.apache.catalina.startup.Catalina.start(Catalina.java:552) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.ssh.impl.EmployeeImpl] is defined: expected single matching bean but found 2: [employeeService, employeeservice] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:621) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:431) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:409) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:537) at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:180) at org.springframework.beans.factory.annotation.InjectionMetadata.injectFields(InjectionMetadata.java:105) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessAfterInstantiation(CommonAnnotationBeanPostProcessor.java:289) ... 40 more 这里只是进行一个框架整合的简单测试,涉及的文件不多,一个action 和关于业务逻辑的一个接口以及实现该接口的类。
ssh2整合问题:error getting ActionMapping,恳求各位大大帮忙看看!!
<p><span style="font-size: large;"><strong>报错如下:</strong></span></p> <p><span style="font-size: small;">[framework][2010-02-24 14:14:10][org.springframework.orm.hibernate3.support.OpenSessionInViewFilter][ http-8080-1:20235 ]-[ DEBUG ] Using SessionFactory 'sessionFactory' for OpenSessionInViewFilter<br>[framework][2010-02-24 14:14:10][org.springframework.beans.factory.support.DefaultListableBeanFactory][ http-8080-1:20235 ]-[ DEBUG ] Returning cached instance of singleton bean 'sessionFactory'<br>[framework][2010-02-24 14:14:10][org.springframework.orm.hibernate3.support.OpenSessionInViewFilter][ http-8080-1:20344 ]-[ DEBUG ] Opening single Hibernate Session in OpenSessionInViewFilter<br>[framework][2010-02-24 14:14:10][org.springframework.orm.hibernate3.SessionFactoryUtils][ http-8080-1:20344 ]-[ DEBUG ] Opening Hibernate Session<br>[framework][2010-02-24 14:14:10][org.hibernate.impl.SessionImpl][ http-8080-1:20485 ]-[ DEBUG ] opened session at timestamp: 12669920506<br>[framework][2010-02-24 14:14:10][org.hibernate.impl.SessionImpl][ http-8080-1:20485 ]-[ DEBUG ] setting flush mode to: NEVER<br>[framework][2010-02-24 14:14:10][org.springframework.transaction.support.TransactionSynchronizationManager][ http-8080-1:20501 ]-[ DEBUG ] Bound value [org.springframework.orm.hibernate3.SessionHolder@1049cbf] for key [org.hibernate.impl.SessionFactoryImpl@652f4d] to thread [http-8080-1]<br><span style="color: #ff0000;">[framework][2010-02-24 14:14:10][org.apache.struts2.dispatcher.FilterDispatcher][ http-8080-1:20516 ]-[ ERROR ] error getting ActionMapping<br>java.lang.NullPointerException</span><br> at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:393)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)<br> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)<br> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)<br> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)<br> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)<br> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)<br> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)<br> at java.lang.Thread.run(Thread.java:619)<br>[framework][2010-02-24 14:14:10][org.springframework.transaction.support.TransactionSynchronizationManager][ http-8080-1:20532 ]-[ DEBUG ] Removed value [org.springframework.orm.hibernate3.SessionHolder@1049cbf] for key [org.hibernate.impl.SessionFactoryImpl@652f4d] from thread [http-8080-1]<br>[framework][2010-02-24 14:14:10][org.springframework.orm.hibernate3.support.OpenSessionInViewFilter][ http-8080-1:20532 ]-[ DEBUG ] Closing single Hibernate Session in OpenSessionInViewFilter<br>[framework][2010-02-24 14:14:10][org.springframework.orm.hibernate3.SessionFactoryUtils][ http-8080-1:20532 ]-[ DEBUG ] Closing Hibernate Session<br>[framework][2010-02-24 14:14:10][org.hibernate.impl.SessionImpl][ http-8080-1:20532 ]-[ DEBUG ] closing session<br>[framework][2010-02-24 14:14:10][org.hibernate.jdbc.ConnectionManager][ http-8080-1:20532 ]-[ DEBUG ] connection already null in cleanup : no action</span></p> <p> </p> <p><strong><span style="font-size: large;">WEB.XML配置如下:</span></strong></p> <p><span><span style="font-size: small;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;web-app version="2.4" xmlns="</span><a href="http://java.sun.com/xml/ns/j2ee"><span style="font-size: small;">http://java.sun.com/xml/ns/j2ee</span></a><span style="font-size: small;">"<br> xmlns:xsi="</span><a href="http://www.w3.org/2001/XMLSchema-instance"><span style="font-size: small;">http://www.w3.org/2001/XMLSchema-instance</span></a><span style="font-size: small;">"<br> xsi:schemaLocation="</span><a href="http://java.sun.com/xml/ns/j2ee"><span style="font-size: small;">http://java.sun.com/xml/ns/j2ee</span></a><span style="font-size: small;"> <br> </span><a href="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><span style="font-size: small;">http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd</span></a><span style="font-size: small;">"&gt;</span></span></p> <p><span style="font-size: x-small;"> <p><br><span style="font-size: small;"> &lt;!-- 加载所有Spring配置文件  开始--&gt;<br> &lt;context-param&gt;<br>  &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br>  &lt;param-value&gt;<br>   /WEB-INF/config/applicationContext*.xml<br>  &lt;/param-value&gt;<br> &lt;/context-param&gt;<br> &lt;!-- 加载所有Spring配置文件  结束--&gt;<br> &lt;!-- 字符编码过滤器  开始<br> &lt;filter&gt;<br>  &lt;filter-name&gt;encodingFilter&lt;/filter-name&gt;<br>  &lt;filter-class&gt;ws.wskai.filter.EncodingFilter&lt;/filter-class&gt;<br>  &lt;init-param&gt;<br>   &lt;param-name&gt;encoding&lt;/param-name&gt;<br>   &lt;param-value&gt;UTF-8&lt;/param-value&gt;<br>  &lt;/init-param&gt;<br> &lt;/filter&gt;<br> &lt;filter-mapping&gt;<br>  &lt;filter-name&gt;encodingFilter&lt;/filter-name&gt;<br>  &lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br> &lt;/filter-mapping&gt;--&gt;<br> &lt;!-- 字符编码过滤器  结束--&gt;<br> &lt;!-- 懒加载过滤器 session到页面才能关  开始--&gt;<br> &lt;filter&gt;<br>  &lt;filter-name&gt;lazyLoadingFilter&lt;/filter-name&gt;<br>  &lt;filter-class&gt;<br>   org.springframework.orm.hibernate3.support.OpenSessionInViewFilter<br>  &lt;/filter-class&gt;<br> &lt;/filter&gt;<br> &lt;filter-mapping&gt;<br>  &lt;filter-name&gt;lazyLoadingFilter&lt;/filter-name&gt;<br>  &lt;url-pattern&gt;*.action&lt;/url-pattern&gt;<br> &lt;/filter-mapping&gt;<br> &lt;!-- 懒加载过滤器 session到页面才能关  结束--&gt;<br> &lt;!-- Struts2总控器(过滤器)  开始--&gt;<br> &lt;filter&gt;<br>  &lt;filter-name&gt;struts2&lt;/filter-name&gt;<br>  &lt;filter-class&gt;<br>   org.apache.struts2.dispatcher.FilterDispatcher<br>  &lt;/filter-class&gt;<br>  &lt;init-param&gt;<br>   &lt;param-name&gt;config&lt;/param-name&gt;<br>   &lt;param-value&gt;../config/struts.xml&lt;/param-value&gt;<br>  &lt;/init-param&gt;<br> &lt;/filter&gt;<br> &lt;filter-mapping&gt;<br>  &lt;filter-name&gt;struts2&lt;/filter-name&gt;<br>  &lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br> &lt;/filter-mapping&gt;<br> &lt;!-- Struts2总控器(过滤器)  结束--&gt;<br> &lt;!-- Spring的listener来初始化Context  开始--&gt;<br> &lt;listener&gt;<br>  &lt;listener-class&gt;<br>   org.springframework.web.context.ContextLoaderListener<br>  &lt;/listener-class&gt;<br> &lt;/listener&gt;<br> &lt;!-- Spring的listener来初始化Context 结束 --&gt;</span></p> <p><span style="font-size: small;"> &lt;!-- Spring 刷新Introspector防止内存泄露 --&gt;<br> &lt;listener&gt;<br>  &lt;listener-class&gt;<br>   org.springframework.web.util.IntrospectorCleanupListener<br>  &lt;/listener-class&gt;<br> &lt;/listener&gt;<br> &lt;!-- session超时定义,单位为分钟 --&gt;<br> &lt;session-config&gt;<br>  &lt;session-timeout&gt;20&lt;/session-timeout&gt;<br> &lt;/session-config&gt;</span></p> <p><br><span style="font-size: small;"> &lt;!-- 默认启动页面  结束--&gt;<br> &lt;welcome-file-list&gt;<br>  &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;<br> &lt;/welcome-file-list&gt;<br> &lt;!-- 默认启动页面  结束 --&gt;<br>&lt;/web-app&gt;</span></p> <p><strong><span style="font-size: large;">struts.xml配置如下:</span></strong></p> <p> </p> </span></p> <p> </p> <p><span style="font-size: small;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;!DOCTYPE struts PUBLIC <br> "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"<br> "</span><a href="http://struts.apache.org/dtds/struts-2.0.dtd"><span style="font-size: small;">http://struts.apache.org/dtds/struts-2.0.dtd</span></a><span style="font-size: small;">"&gt;<br>&lt;struts&gt;<br> &lt;!-- 设置常量,表示把struts交给spring管理 --&gt;<br> &lt;constant name="struts.objectFactory"<br>  value="com.opensymphony.xwork2.ObjectFactory" /&gt;<span style="color: #ff0000;"><strong>&lt;!--把value里面的值改为"spring"就出错,郁闷!!--&gt;</strong></span></span></p> <p><span style="font-size: small;"> &lt;package name="admin" extends="struts-default"<br>  namespace="/jsp/admin"&gt;<br>  &lt;action name="list" class="adminBean" method="select"&gt;<br>   &lt;result&gt;/index.jsp&lt;/result&gt;<br>  &lt;/action&gt;<br>  &lt;action name="addAdmin" class="adminBean" method="add"&gt;<br>   &lt;result&gt;list.action&lt;/result&gt;<br>  &lt;/action&gt;<br>  &lt;action name="deleteAdmin" class="adminBean" method="delete"&gt;<br>   &lt;result&gt;list.action&lt;/result&gt;<br>  &lt;/action&gt;<br>  &lt;action name="deleteByIDAdmin" class="adminBean"<br>   method="deleteByID"&gt;<br>   &lt;result&gt;list.action&lt;/result&gt;<br>  &lt;/action&gt;<br>  &lt;action name="updateAdmin" class="adminBean" method="update"&gt;<br>   &lt;result&gt;list.action&lt;/result&gt;<br>  &lt;/action&gt;<br>  &lt;action name="selectByIDAdmin" class="adminBean"<br>   method="selectByID"&gt;<br>   &lt;result&gt;list.action&lt;/result&gt;<br>  &lt;/action&gt;<br> &lt;/package&gt;<br>&lt;/struts&gt;</span></p> <p><strong><span style="font-size: large;">Spring的三个文件配置如下:</span></strong> </p> <p> </p> <p><span style="color: #ff0000; font-size: small;"><strong>applicationContext-actions.xml:</strong></span></p> <p><strong></strong> </p> <p><span style="font-size: small;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;beans xmlns="</span><a href="http://www.springframework.org/schema/beans"><span style="font-size: small;">http://www.springframework.org/schema/beans</span></a><span style="font-size: small;">"<br> xmlns:xsi="</span><a href="http://www.w3.org/2001/XMLSchema-instance"><span style="font-size: small;">http://www.w3.org/2001/XMLSchema-instance</span></a><span style="font-size: small;">"<br> xmlns:p="</span><a href="http://www.springframework.org/schema/p"><span style="font-size: small;">http://www.springframework.org/schema/p</span></a><span style="font-size: small;">"<br> xmlns:aop="</span><a href="http://www.springframework.org/schema/aop"><span style="font-size: small;">http://www.springframework.org/schema/aop</span></a><span style="font-size: small;">"<br> xmlns:tx="</span><a href="http://www.springframework.org/schema/tx"><span style="font-size: small;">http://www.springframework.org/schema/tx</span></a><span style="font-size: small;">"<br> xsi:schemaLocation="</span><a href="http://www.springframework.org/schema/beans"><span style="font-size: small;">http://www.springframework.org/schema/beans</span></a><span style="font-size: small;"> </span><a href="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><span style="font-size: small;">http://www.springframework.org/schema/beans/spring-beans-2.5.xsd</span></a><br><span style="font-size: small;">       </span><a href="http://www.springframework.org/schema/aop"><span style="font-size: small;">http://www.springframework.org/schema/aop</span></a><span style="font-size: small;"> </span><a href="http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"><span style="font-size: small;">http://www.springframework.org/schema/aop/spring-aop-2.5.xsd</span></a><br><span style="font-size: small;">       </span><a href="http://www.springframework.org/schema/tx"><span style="font-size: small;">http://www.springframework.org/schema/tx</span></a><span style="font-size: small;"> </span><a href="http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><span style="font-size: small;">http://www.springframework.org/schema/tx/spring-tx-2.5.xsd</span></a><span style="font-size: small;">"&gt;</span></p> <p><span style="font-size: small;"> &lt;!-- struts的注入,特别注意,加scope="prototype" --&gt;<br> &lt;!-- admin --&gt;<br> &lt;bean name="adminBean" class="ws.wskai.action.AdminAction"<br>  scope="prototype"&gt;<br>  &lt;property name="adminService" ref="adminService" /&gt;<br> &lt;/bean&gt;<br>&lt;/beans&gt;</span></p> <p><br><span style="color: #ff0000; font-size: small;"><strong>applicationContext-beans.xml:</strong></span></p> <p><span style="font-size: small;"> </span></p> <p><span style="font-size: small;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;beans xmlns="</span><a href="http://www.springframework.org/schema/beans"><span style="font-size: small;">http://www.springframework.org/schema/beans</span></a><span style="font-size: small;">"<br> xmlns:xsi="</span><a href="http://www.w3.org/2001/XMLSchema-instance"><span style="font-size: small;">http://www.w3.org/2001/XMLSchema-instance</span></a><span style="font-size: small;">"<br> xmlns:p="</span><a href="http://www.springframework.org/schema/p"><span style="font-size: small;">http://www.springframework.org/schema/p</span></a><span style="font-size: small;">"<br> xmlns:aop="</span><a href="http://www.springframework.org/schema/aop"><span style="font-size: small;">http://www.springframework.org/schema/aop</span></a><span style="font-size: small;">"<br> xmlns:tx="</span><a href="http://www.springframework.org/schema/tx"><span style="font-size: small;">http://www.springframework.org/schema/tx</span></a><span style="font-size: small;">"<br> xsi:schemaLocation="</span><a href="http://www.springframework.org/schema/beans"><span style="font-size: small;">http://www.springframework.org/schema/beans</span></a><span style="font-size: small;"> </span><a href="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><span style="font-size: small;">http://www.springframework.org/schema/beans/spring-beans-2.5.xsd</span></a><br><span style="font-size: small;">       </span><a href="http://www.springframework.org/schema/aop"><span style="font-size: small;">http://www.springframework.org/schema/aop</span></a><span style="font-size: small;"> </span><a href="http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"><span style="font-size: small;">http://www.springframework.org/schema/aop/spring-aop-2.5.xsd</span></a><br><span style="font-size: small;">       </span><a href="http://www.springframework.org/schema/tx"><span style="font-size: small;">http://www.springframework.org/schema/tx</span></a><span style="font-size: small;"> </span><a href="http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><span style="font-size: small;">http://www.springframework.org/schema/tx/spring-tx-2.5.xsd</span></a><span style="font-size: small;">"&gt;</span></p> <p><span style="font-size: small;">&lt;!-- model层注入   开始--&gt;<br> &lt;!--adminDAO--&gt;<br> &lt;bean id="adminDAO" class="ws.wskai.dao.impl.AdminDAOImpl"&gt;<br>  &lt;property name="sessionFactory" ref="sessionFactory" /&gt;<br> &lt;/bean&gt;<br>&lt;!-- model层注入   结束--&gt;</span></p> <p><span style="font-size: small;">&lt;!-- 服务层的注入   开始--&gt;<br> &lt;bean id="adminService"<br>  class="ws.wskai.service.Impl.AdminServiceImpl"&gt;<br>  &lt;property name="adminDAO" ref="adminDAO" /&gt;&lt;!-- name为类里面的注入变量名, ref为引用名,引用路径名 --&gt;<br> &lt;/bean&gt;<br>&lt;!-- 服务层的注入   结束--&gt;<br>&lt;/beans&gt;</span></p> <p><span style="color: #ff0000; font-size: small;">applicationContext-common.xml:</span></p> <p><span style="font-size: small;"> </span></p> <p><span style="font-size: small;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;beans xmlns="</span><a href="http://www.springframework.org/schema/beans"><span style="font-size: small;">http://www.springframework.org/schema/beans</span></a><span style="font-size: small;">"<br> xmlns:xsi="</span><a href="http://www.w3.org/2001/XMLSchema-instance"><span style="font-size: small;">http://www.w3.org/2001/XMLSchema-instance</span></a><span style="font-size: small;">"<br> xmlns:p="</span><a href="http://www.springframework.org/schema/p"><span style="font-size: small;">http://www.springframework.org/schema/p</span></a><span style="font-size: small;">"<br> xmlns:aop="</span><a href="http://www.springframework.org/schema/aop"><span style="font-size: small;">http://www.springframework.org/schema/aop</span></a><span style="font-size: small;">"<br> xmlns:context="</span><a href="http://www.springframework.org/schema/context"><span style="font-size: small;">http://www.springframework.org/schema/context</span></a><span style="font-size: small;">"<br> xmlns:jee="</span><a href="http://www.springframework.org/schema/jee"><span style="font-size: small;">http://www.springframework.org/schema/jee</span></a><span style="font-size: small;">"<br> xmlns:tx="</span><a href="http://www.springframework.org/schema/tx"><span style="font-size: small;">http://www.springframework.org/schema/tx</span></a><span style="font-size: small;">"<br> xsi:schemaLocation="<br>   </span><a href="http://www.springframework.org/schema/aop"><span style="font-size: small;">http://www.springframework.org/schema/aop</span></a><span style="font-size: small;"> </span><a href="http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"><span style="font-size: small;">http://www.springframework.org/schema/aop/spring-aop-2.5.xsd</span></a><br><span style="font-size: small;">   </span><a href="http://www.springframework.org/schema/beans"><span style="font-size: small;">http://www.springframework.org/schema/beans</span></a><span style="font-size: small;"> </span><a href="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><span style="font-size: small;">http://www.springframework.org/schema/beans/spring-beans-2.5.xsd</span></a><br><span style="font-size: small;">   </span><a href="http://www.springframework.org/schema/context"><span style="font-size: small;">http://www.springframework.org/schema/context</span></a><span style="font-size: small;"> </span><a href="http://www.springframework.org/schema/context/spring-context-2.5.xsd"><span style="font-size: small;">http://www.springframework.org/schema/context/spring-context-2.5.xsd</span></a><br><span style="font-size: small;">   </span><a href="http://www.springframework.org/schema/jee"><span style="font-size: small;">http://www.springframework.org/schema/jee</span></a><span style="font-size: small;"> </span><a href="http://www.springframework.org/schema/jee/spring-jee-2.5.xsd"><span style="font-size: small;">http://www.springframework.org/schema/jee/spring-jee-2.5.xsd</span></a><br><span style="font-size: small;">   </span><a href="http://www.springframework.org/schema/tx"><span style="font-size: small;">http://www.springframework.org/schema/tx</span></a><span style="font-size: small;"> </span><a href="http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><span style="font-size: small;">http://www.springframework.org/schema/tx/spring-tx-2.5.xsd</span></a><span style="font-size: small;">"&gt;</span></p> <p><span style="font-size: small;"> &lt;bean id="dataSource"<br>  class="org.apache.commons.dbcp.BasicDataSource"&gt;<br>  &lt;property name="driverClassName"<br>   value="com.mysql.jdbc.Driver"&gt;<br>  &lt;/property&gt;<br>  &lt;property name="url"<br>   value="jdbc:mysql://localhost:3306/music"&gt;<br>  &lt;/property&gt;<br>  &lt;property name="username" value="root"&gt;&lt;/property&gt;<br> &lt;/bean&gt;<br> &lt;bean id="sessionFactory"<br>  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;<br>  &lt;property name="dataSource"&gt;<br>   &lt;ref bean="dataSource" /&gt;<br>  &lt;/property&gt;<br>  &lt;property name="hibernateProperties"&gt;<br>   &lt;props&gt;<br>    &lt;prop key="hibernate.dialect"&gt;<br>     org.hibernate.dialect.MySQLDialect<br>    &lt;/prop&gt;<br>    &lt;!-- 允许自动提交 --&gt;<br>    &lt;prop key="hibernate.connection.autocommit"&gt;true&lt;/prop&gt;<br>    &lt;!-- 显示sql语句 --&gt;<br>    &lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;<br>    &lt;!-- 根据hbm.xml 自动修改表结构,当表不存在的时候,还会自动创建表--&gt;<br>    &lt;prop key="hibernate.hbm2ddl.auto"&gt;update&lt;/prop&gt;<br>   &lt;/props&gt;<br>  &lt;/property&gt;<br>  &lt;property name="mappingResources"&gt;<br>   &lt;list&gt;<br>    &lt;value&gt;ws/wskai/beans/Admin.hbm.xml&lt;/value&gt;<br>    &lt;value&gt;ws/wskai/beans/Users.hbm.xml&lt;/value&gt;<br>    &lt;value&gt;ws/wskai/beans/Visits.hbm.xml&lt;/value&gt;<br>   &lt;/list&gt;<br>  &lt;/property&gt;<br> &lt;/bean&gt;</span></p> <p><span style="font-size: small;"> &lt;!-- 配置事务管理器(声明式的事务)--&gt;<br> &lt;bean id="transactionManager"<br>  class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;<br>  &lt;property name="sessionFactory"&gt;<br>   &lt;ref local="sessionFactory" /&gt;<br>  &lt;/property&gt;<br> &lt;/bean&gt;<br> &lt;!-- 配置事务特性方法,配置add、delete、update、query开始的方法,事务传播特性为required --&gt;<br> &lt;tx:advice id="txAdvice" transaction-manager="transactionManager"&gt;<br>  &lt;tx:attributes&gt;<br>   &lt;tx:method name="add*" propagation="REQUIRED" /&gt;<br>   &lt;tx:method name="delete*" propagation="REQUIRED" /&gt;<br>   &lt;tx:method name="update*" propagation="REQUIRED" /&gt;<br>   &lt;tx:method name="query*" propagation="REQUIRED" /&gt;<br>   &lt;tx:method name="get*" propagation="REQUIRED" /&gt;<br>   &lt;tx:method name="*" read-only="true" /&gt;<br>  &lt;/tx:attributes&gt;<br> &lt;/tx:advice&gt;<br> &lt;!-- <br>  配置那个包下的class,方法接受事务管理<br>  第一个 *  通配 任意返回值类型<br>  第二个 *  通配 包ws.wskai.service下的任意class<br>  第三个 *  通配 包ws.wskai.service下的任意class的任意方法<br>  第四个 .. 通配 方法可以有0个或多个参数  <br>  综上:包ws.wskai.service下的任意class的具有任意返回值类型、任意数目参数和任意名称的方法 <br> --&gt;<br> &lt;aop:config&gt;<br>  &lt;aop:pointcut id="allManagerMethod"<br>   expression="execution(* ws.wskai.service.*.*(..))" /&gt;<br>  &lt;aop:advisor advice-ref="txAdvice"<br>   pointcut-ref="allManagerMethod" /&gt;<br> &lt;/aop:config&gt;<br>&lt;/beans&gt;</span></p>
SSH框架应用的一个例子,不知道错在哪里,很郁闷
[b]开发环境:[/b] MyEclipse7+Tomcat5+MySQL5+Struts1.2+Hibernate3.2+Spring2.0 [b]相关代码:[/b] [color=indigo]index.jsp中代码:[/color] <body> <form action="addAdmin.do"> <input type="submit" value="OK" /> </form> </body> [color=indigo]AddAdmin.java代码:[/color] package edu.bhu.Kupid.actions; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import edu.bhu.Kupid.domain.Admins; import edu.bhu.Kupid.service.AdminsService; public class AddAdmin extends Action { private AdminsService admServer; public AdminsService getAdmServer() { return admServer; } public void setAdmServer(AdminsService admServer) { this.admServer = admServer; } public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{ request.setCharacterEncoding("utf-8"); String loginname="admin"; String pwd="admin"; Admins adm=new Admins(); adm.setPwd(pwd); adm.setId("1234665"); adm.setLoginname(loginname); adm.setLevel(0); admServer.addAdmin(adm); return mapping.findForward("ok"); } } [color=indigo]AdminsService.java代码:[/color] package edu.bhu.Kupid.service; import java.util.List; import edu.bhu.Kupid.domain.Admins; public interface AdminsService { public void addAdmin(Admins adm); public List<Admins> findAdminsByName(String name); } [color=indigo]AdminsServiceImpl代码:[/color] package edu.bhu.Kupid.service; import java.util.List; import edu.bhu.Kupid.domain.Admins; import edu.bhu.Kupid.persist.AdminsDao; public class AdminsServiceImpl implements AdminsService { private AdminsDao admDao; public void addAdmin(Admins adm) { admDao.insert(adm); } public AdminsDao getAdmDao() { return admDao; } public void setAdmDao(AdminsDao admDao) { this.admDao = admDao; } public List<Admins> findAdminsByName(String name) { return null; } } [color=indigo]AdminsDao.java代码:[/color] package edu.bhu.Kupid.persist; import edu.bhu.Kupid.domain.Admins; public interface AdminsDao extends BaseDao<Admins,String>{ } [color=indigo]AdminsDaoImpl.java代码:[/color] package edu.bhu.Kupid.persist; import edu.bhu.Kupid.domain.Admins; import edu.bhu.Kupid.persist.BaseDaoImpl; public class AdminsDaoImpl extends BaseDaoImpl<Admins,String> implements AdminsDao { } [color=indigo]BaseDao.java代码:[/color] package edu.bhu.Kupid.persist; import java.io.Serializable; public interface BaseDao<T, PK extends Serializable> { public void insert(T entity); public void update(T entity); public void delete(T entity); public void deleteById(PK id); public T findById(PK id); } [color=indigo]BaseDaoImpl.java代码:[/color] package edu.bhu.Kupid.persist; import java.io.Serializable; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class BaseDaoImpl<T,PK extends Serializable> extends HibernateDaoSupport implements BaseDao<T, PK> { protected Class entityClass; public void delete(T entity) { getHibernateTemplate().delete(entity); } public void deleteById(PK id) { getHibernateTemplate().delete(getHibernateTemplate().get(entityClass, id)); } public T findById(PK id) { return (T)getHibernateTemplate().get(entityClass, id); } public void insert(T entity) { getHibernateTemplate().save(entity); } public void update(T entity) { getHibernateTemplate().update(entity); } } [color=indigo] Admins.java代码(这个BEAN的代码是利用MyEclipse的DBExplorer的Hibernate Reverse Engineering生成的)[/color] package edu.bhu.Kupid.domain; /** * Admins entity. @author MyEclipse Persistence Tools */ public class Admins implements java.io.Serializable { // Fields private String id; private String loginname; private String pwd; private Integer level; // Constructors /** default constructor */ public Admins() { } /** full constructor */ public Admins(String id, String loginname, String pwd, Integer level) { this.id = id; this.loginname = loginname; this.pwd = pwd; this.level = level; } // Property accessors public String getId() { return this.id; } public void setId(String id) { this.id = id; } public String getLoginname() { return this.loginname; } public void setLoginname(String loginname) { this.loginname = loginname; } public String getPwd() { return this.pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public Integer getLevel() { return this.level; } public void setLevel(Integer level) { this.level = level; } } [color=indigo]Admins.hbm.xml代码:[/color] <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="edu.bhu.Kupid.domain.Admins" table="admins" catalog="graduation"> <id name="id" type="java.lang.String"> <column name="id" length="128" /> <generator class="uuid.hex" /> </id> <property name="loginname" type="java.lang.String"> <column name="loginname" length="20" not-null="true" /> </property> <property name="pwd" type="java.lang.String"> <column name="pwd" length="20" not-null="true" /> </property> <property name="level" type="java.lang.Integer"> <column name="level" not-null="true" /> </property> </class> </hibernate-mapping> [color=indigo]spring-admins.xml代码:[/color] <?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="adminsDao" class="edu.bhu.Kupid.persist.AdminsDaoImpl" parent="baseDao"> </bean> <bean id="adminsServer" class="edu.bhu.Kupid.service.AdminsServiceImpl"> <property name="admDao"> <ref bean="adminsDao"/> </property> </bean> <bean name="/addAdmin" class="edu.bhu.Kupid.actions.AddAdmin"> <property name="admServer"> <ref bean="adminsServer" /> </property> </bean> </beans> [color=indigo] applicationContext.xml代码:[/color] <?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"> <import resource="spring-admins.xml" /> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>/WEB-INF/classes/configure.properties</value> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>${jdbc.driverClassName}</value> </property> <property name="url"> <value>${jdbc.url}</value> </property> <property name="username"> <value>${jdbc.username}</value> </property> <property name="password"> <value>${jdbc.password}</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="mappingResources"> <list> <value>/edu/bhu/Kupid/domain/Admins.hbm.xml </value> <!-- 好多好多Hibernate --> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> ${hibernate.dialect} </prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> </props> </property> </bean> <bean id="baseDao" class="edu.bhu.Kupid.persist.BaseDaoImpl" abstract="true"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> </beans> [color=indigo]struts-config.xml代码:[/color] <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <data-sources /> <form-beans /> <global-exceptions /> <global-forwards /> <action-mappings > <action path="/addAdmin" type="edu.bhu.Kupid.actions.AddAdmin" validate="false" > <forward name="ok" path="/ok.jsp" ></forward> </action> </action-mappings> <message-resources parameter="edu.bhu.Kupid.resource.ApplicationResources" /> </struts-config> [color=indigo]web.xml代码:[/color] <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </context-param> <servlet> <servlet-name>SpringContextServlet</servlet-name> <servlet-class> org.springframework.web.context.ContextLoaderServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <filter> <filter-name>OpenSessionInView</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> <init-param> <param-name>singleSession</param-name> <param-value>false</param-value> </init-param> </filter> <filter-mapping> <filter-name>OpenSessionInView</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> [b]程序目的:[/b] index.jsp上的按钮被点击后,一条Admin的信息入库。 [b] 产生错误:[/b] 浏览器中错误信息: HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:173) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) root cause java.lang.NullPointerException edu.bhu.Kupid.actions.AddAdmin.execute(AddAdmin.java:37) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:173) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs. Apache Tomcat/5.0.30 MyEclipse中错误信息: 无。 最后感谢您的帮助。祝您好运。棘手问题郁闷中。。。 [b]问题补充:[/b] AddAdmin第37行是:admServer.addAdmin(adm); [b]问题补充:[/b] 我说的嘛,怎么出空指针,昨天晚上做了这样一个试验: 注释掉原来37行的代码,然后手工创建spring上下文,就能通过。果然是SSH整合中有错误。 //admServer.addAdmin(adm); ApplicationContext ctx=new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"}); AdminsService admServer=(AdminsService)ctx.getBean("adminsServer"); admServer.addAdmin(adm); 我是第一次做SSH,不太会弄,请各位多指教。 现在还有一个很头疼的地方,就是struts,我用了tiles来做页面的分帧,于是给struts-config.xml文件加入了 <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" contentType="text/html; charset=UTF-8" /> <message-resources parameter="edu.bhu.Kupid.resource.ApplicationResources" /> <plug-in className="org.apache.struts.tiles.TilesPlugin"> <set-property property="definitions-config" value="/WEB-INF/tiles-config.xml" /> </plug-in> 结果这段代码一加进来,jsp提交表单到action的时候就找不到action了,浏览器报404异常。 PS:回lewhwa :因为有一次我发项目,有个仁兄说下载太麻烦,不如直接贴代码的好,于是我就贴了代码。。。
SSH搭建好了之后开始测试Struts的Action 转到自己写的404页面
按照李刚的struts讲义写的action 功能是输入用户名密码之后跳转到另外的jsp页面.但是每次都出来404页面.请问是哪边配置有问题? 如果另外ssh框架也没建好还请指正.以下是代码[code="web.xml"]<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Archetype Created Web Application</display-name> <!-- 以下3项参数与log4j的配置相关 --> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <!-- 默认情况下,会加载WEB-INF/applicationContext.xml这个文件,我们可以通过配置 contextConfigLocation参数改变配置文件的路径 --> <!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔 此参数用于后面的Spring-Context loader --> <!-- 使容器启动时,自动加载applicationContext配置,因为它实现了ServletContextListener这个接口,容器启动时会自动执行它实现的方法。 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:*/ApplicationContext.xml,*/action-Servlet.xml</param-value> </context-param> <!-- 加载spring容器 --> <!-- 整合struts 加入中心拦截器 --> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> <init-param> <param-name>struts.action.extendion</param-name> <param-value>action</param-value> </init-param> </filter> <!-- <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>--> <!-- Struts --> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts.xml</param-value></init-param> <load-on-startup>2</load-on-startup> </servlet> <!-- session超时定义,单位为分钟 --> <session-config> <session-timeout>120</session-timeout> </session-config> <!-- 默认首页定义 --> <welcome-file-list> <welcome-file>login2.jsp</welcome-file> </welcome-file-list> <!-- Error Page定义 --> <error-page> <exception-type>java.lang.Throwable</exception-type> <location>/commons/error.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/commons/error.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/commons/404.jsp</location> </error-page> <error-page> <error-code>403</error-code> <location>/commons/403.jsp</location> </error-page> </web-app> [/code] [code="strut.xml"]<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true"/> <constant name="struts.objectFactory" value="spring" ></constant> <package name="calvin" extends="struts-default"> <action name="login" class="/loginAction"> <result name="error">index.jsp</result> <result name="success">/pages/index.jsp</result> </action> </package> </struts>[/code] [code="ApplicationContext.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-3.0.xsd"> <!-- Spring容器配置文件 --> <!-- 告诉spring hibernate文件的位置 然后加载 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/policemanagement?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="rooot"/> <property name="maxActive" value="100"/> <property name="maxIdle" value="30"/> <property name="maxWait" value="1000"/> <property name="defaultAutoCommit" value="true"/> <property name="removeAbandoned" value="true"/> <property name="removeAbandonedTimeout" value="60"/> <property name="logAbandoned" value="true"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mappingResources" > <list> <value>calvin/po/pojo/hbm/arrestedPerson.hbm.xml</value> <value>calvin/po/pojo/hbm/caseRegisted.hbm.xml</value> <value>calvin/po/pojo/hbm/caseThread.hbm.xml</value> <value>calvin/po/pojo/hbm/caseVictim.hbm.xml</value> <value>calvin/po/pojo/hbm/policeOfficer.hbm.xml</value> <value>calvin/po/pojo/hbm/victimOffice.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hbm2ddl.auto">create</prop> </props> </property> </bean> <!-- 为hibernte配置事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- daoContext 配置原因 所以放在这边 --> <bean id="dao" class="calvin.dao.imp.BaseDAOHibernate"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="policeOfficerDAO" class="calvin.dao.imp.PoliceOfficerImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="arrestedPersonDAO" class="calvin.dao.imp.ArrestedPersonImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="caseRegisteredDAO" class="calvin.dao.imp.CaseRegisteredImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="caseThreadDAO" class="calvin.dao.imp.CaseThreadImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="caseVictimDAO" class="calvin.dao.imp.CaseVictimImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="victimOfficeDAO" class="calvin.dao.imp.VictimOfficeImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <!-- ENd --> <!-- IOC 注入机制 --> <!-- 定义事务模板类 --> <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <!-- 注入事务管理器 --> <property name="transactionManager" ref="transactionManager"/> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="remove*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property></bean> <!-- 配置具体业务逻辑层组件的事物代理 --> <bean id="manager" parent="txProxyTemplate"> <property name="target"> <bean class="calvin.service.BaseManager"> <property name="dao" ref="dao"/> </bean> </property> </bean> <!-- 配置具体的业务逻辑组件额事务代理 --> <!-- 配置业务逻辑组件的事务代理,使用了bean 的继承 --> <!-- 配置所需要的dao组件!!!即这里用的是dao的名字 --> <bean id="facadeManager" parent="txProxyTemplate"> <!-- 配置事务代理时,指定代理的目标,此处的目标是嵌套bean--> <property name="target"> <!-- 嵌套bean无须使用 id属性--> <bean class="calvin.service.imp.FacadeManagerImp"> <!-- 为业务逻辑组件注入DAO组件 --> <property name="victimOfficeDAO" ref="victimOfficeDAO"/> <property name="policeOfficerDAO" ref="policeOfficerDAO"/> <property name="caseVictimDAO" ref="caseVictimDAO"/> <property name="caseThreadDAO" ref="caseThreadDAO"/> <property name="caseRegisteredDAO" ref="caseRegisteredDAO"/> <property name="arrestedPersonDAO" ref="arrestedPersonDAO"/> </bean></property> </bean> <!-- action --> <bean id="myService" class="calvin.action.test.MyServiceImp"/> <bean name="/loginAction" class="calvin.action.LoginAction" scope="prototype"> <property name="ms" ref="myService"/> </bean> </beans>[/code] [code="LoginAction"]package calvin.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.junit.Test; import calvin.action.baseAction.BaseAction; import calvin.action.test.MyService; import calvin.po.pojo.PoliceOfficer; public class LoginAction extends BaseAction{ private String username; private String password; private MyService ms; public MyService getMs() { return ms; } public void setMs(MyService ms) { this.ms = ms; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String execute() throws Exception{ System.out.println("AAA"); if(ms.valid(getUsername(),getPassword())){ return new String("success"); }else{ return "error";} } } [/code] [code="MyServiceImp"]package calvin.action.test; public class MyServiceImp implements MyService{ public boolean valid(String username,String pass){ return true; } } [/code] 首页配置就是一个很简单的登陆页面.
130 个相见恨晚的超实用网站,一次性分享出来
相见恨晚的超实用网站 持续更新中。。。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
iOS Bug 太多,苹果终于坐不住了!
开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢? 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。不过一直以来,开源的 Android 吸引了无数的手机厂商涌入其中,为其生态带来了百花齐放的盛景,但和神秘且闭源的 iOS 系统相比,不少网友
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
为什么你学不过动态规划?告别动态规划,谈谈我的经验
动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看 0-1 背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验 对于动态规划,春招秋招时好多题都会用到动态...
(经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
今年正式步入了大四,离毕业也只剩半年多的时间,回想一下大学四年,感觉自己走了不少弯路,今天就来分享一下自己大学的学习经历,也希望其他人能不要走我走错的路。 (一)初进校园 刚进入大学的时候自己完全就相信了高中老师的话:“进入大学你们就轻松了”。因此在大一的时候自己学习的激情早就被抛地一干二净,每天不是在寝室里玩游戏就是出门游玩,不过好在自己大学时买的第一台笔记本性能并不是很好,也没让我彻底沉...
使用 Angular 打造微前端架构的 ToB 企业级应用
这篇文章其实已经准备了11个月了,因为虽然我们年初就开始使用 Angular 的微前端架构,但是产品一直没有正式发布,无法通过生产环境实践验证可行性,11月16日我们的产品正式灰度发布,所以是时候分享一下我们在使用 Angular 微前端这条路上的心得(踩过的坑)了额,希望和 Angular 社区一起成长一起进步,如果你对微前端有一定的了解并且已经在项目中尝试了可以忽略前面的章节。 什么是微前...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
拿下微软、Google、Adobe,印度为何盛产科技圈 CEO?
作者 | 胡巍巍 出品 | CSDN(ID:CSDNnews) 世界500强中,30%的掌舵人,都是印度人。 是的,你没看错。这是近日《哈佛商业评论》的研究结果。 其中又以微软CEO萨提亚·纳德拉(Satya Nadella)、和谷歌CEO桑达尔·皮查伊(Sundar Pichai,以下简称劈柴)最为出名。 微软CEO萨提亚·纳德拉(Satya Nadella) 其他著名印度...
程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
一文带你入门Linux
文章目录1.1 Linux的概述:1.1.1 什么是Linux:1.1.1.1 学习Linux之前先了解Unix1.1.1.2 Linux的概述:1.1.1.3 Linux的历史:1.1.1.4 Linux系统的应用:1.1.1.5 Linux的版本1.1.1.6 Linux的主流版本1.2 Linux的安装:1.2.1 虚拟机安装:1.2.1.1 什么是虚拟机1.2.1.2 安装VmWare1....
普通三本毕业,我怎么一路艰辛进入阿里的
英雄不问出处? 自古以来就有这样一句话,真的英雄不问出处吗?这句话太挫了。普通三本院校的我,大四的时候居然都不知道什么是校招,所以出处太重要了。这也是没有机会参加阿里校招的原因,毕竟校招门槛比社招还是要低的,最重要的是校招进入阿里能让你的起点比别人更高。 有幸可以社招进入阿里,了解了校招的思路,赶紧介绍给学弟们,现在我们三本院校的小学弟今年居然有 3 个人通过了阿里的校招。下面我也把这份宝贵的经...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
强烈推荐10本程序员在家读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
关于2020年个人项目【臻美_疫情实时大数据报告】(项目开源)
本项目开源,供大家学习交流,数据来自官方通报。 项目网址: 点这可以查看项目 项目图例: 1、国内疫情(省) 2、国内疫情(市) 3、国外疫情 4、热点消息、辟谣消息 5、防疫知识 源码奉上: 本项目后台使用node.js app.js var originRequest = require('request'); var iconv = require('iconv-lite'...
[数据结构与算法] 排序算法
终于学习到了算法部分, 在学习算法时, 我们还是应该回顾一下数据结构与算法之间的关系 数据结构是研究数据的组织方式, 是算法的基础 算法是解决编程问题的方法论, 是程序的灵魂 程序= 数据结构+算法 排序算法 排序也称排序算法(Sort algorithm). 是指 将一组数据按照指定顺序进行排列的过程 主要分为内部排序和外部排序 内部排序: 指将需要处理的数据加载到内存中进行排序 外部排序...
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药...
自学python网络爬虫,从小白快速成长,分别实现静态网页爬取,下载meiztu中图片;动态网页爬取,下载burberry官网所有当季新品图片。
文章目录 1.前言 2.知识储备 3.爬取静态网站 4.爬取动态网站 1.前言 近日疫情严重,手机已经玩吐了,闲着无聊逛衣服品牌官网发现,结果一时兴起,想学一学python,写一个爬虫下载官网所有最新上架的衣服图片和价格;说干就干,但身为一个只学过一些c和c++的python 0基础大二小白,csdn上的各种教程里涉及的各种发法、工具和库让我眼花缭乱;因此走了很多弯路,终于花三天时间完成了爬虫的设...
面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBati...
对Tomcat的简单概要小结
首先我们必须得知道Tomcat就是一个服务,一个本地服务,我们可以控制启动和停止,我们程序员通过这个服务主要是用来存放我们的java程序,当我们把Java程序放进Tomcat服务中,一旦Tomcat服务启动起来,其他电脑就可以进行网络连通,也就是说其他电脑也可以共同访问这个Java程序。 Tomcat的主要目录的概念 有上面的概念之后,我们再来知道一下tomcat根目录下都有哪些文件,以及这些文...
程序员回家过年,外婆说没带女朋友别回来了?喝了老爸89年的酒,当场反目。
点赞再看,养成习惯,微信搜索【三太子敖丙】关注这个被微信官方推荐过的逗比 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点系统复习,希望我们一起有点东西。 注:本文是水日常的文章,不是技术文,看技术的同学可以右划了。 今天是除夕,帅丙也不水太多东西了,先祝大家...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
Java实现多线程的三种方式
在Java中可通过三种方式来实现多线程:1、继承Thread类,重写run( )方法;2、实现Runnable接口,重写run( )方法;3、实现Callable接口,重写call( )方法并使用FutureTask获取call( )方法的返回结果
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问