springmvc整合ibatis+ibatis启动时报错

spring+ibatis启动时报错_百度知道
spring+ibatis启动时报错
CD;acode/wtpwebapps&#47javawork&#47.common: Error parsing XML: Connection timed out: com.BeanCreationException.plugins&#47.core&#47.eclipse.ConnectException. nestsqlMapClient&#39.wst: Error creating bean with name &#39.metadata&#47.beans: Invocation o.factory.NodeletEapplication-context: java:&#47.xml.
Ctmp0&#47.RuntimeEclasses/; defined in URL [file:/WEB-INF&#47.ibatis.xml];springconf/org: Error occurred.springframework.server.lang
提问者采纳
Connection timed outCause: java.net.ConnectException
提问者评价
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Maven+spring+ibatis+struts2.0+MQ+Memcached 项目构建 - rainyear - ITeye技术网站
博客分类:
1&Maven一些基本命令:
打包到eclipse中的命令:mvn eclipse:eclipse
打包到eclipse中的命令:mvn eclipse:clean eclipse:eclipse
2:建立环境变量:在path 目录下建立:
D:\apache-maven-3.0.3\bin
到你新建的文件夹下。
例如:你新建了一个文件夹:F:\WorkSpace\
CMD进入:
mvn archetype:create -DgroupId=com.xiu.TestSSI -DartifactId=TestSSI-2.0 -Dversion=1.0
cd TestSSI-2.0 进入主目录然后分别建立目录
mvn archetype:create -DgroupId=com.xiu.TestSSI.api -DartifactId=TestSSI-api -Dversion=1.0
mvn archetype:create -DgroupId=com.xiu.TestSSI.web -DartifactId=TestSSI-web -Dversion=1.0 -DarchetypeArtifactId=maven-archetype-webapp
mvn archetype:create -DgroupId=com.xiu.TestSSI.util -DartifactId=TestSSI-util -Dversion=1.0
mvn archetype:create -DgroupId=com.xiu.TestSSI.model -DartifactId=TestSSI-model -Dversion=1.0
mvn archetype:create -DgroupId=com.xiu.TestSSI.persist -DartifactId=TestSSI-persist -Dversion=1.0
mvn archetype:create -DgroupId=com.xiu.TestSSI.core& -DartifactId=TestSSI-core -Dversion=1.0
3:mvn eclipse:eclipse
要以导入ecliesp
4:依赖关系 :
&&& &dependency&
& &groupId&com.xiu.channel.core&/groupId&
& &artifactId&channel-core&/artifactId&
& &version&1.0&/version&
&&& &/dependency&
&& &dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring&/artifactId&
&version&2.5.6&/version&
&/dependency&
&&
一般来讲,web 依赖 core model util
core 依赖于model util ,pereist
5:一般来讲web 下的resoures文件用来放配置文件
SSI常用的经常出问题的地方:
A:使用Hassion
1:spring里面配置:
&bean id="inventoryService"
class="org.springframework.remoting.caucho.HessianProxyFactoryBean"&
&property name="serviceUrl"&
&value&${tm.channel}/inventoryservice&/value&
&/property&
&property name="serviceInterface"&
&value&com.xiu.channel.inventory.api.InventoryService&/value&
&/property&
&/bean&
2:
OrderEntryService orderEntryService =
String url = "http://localhost:8080/trade/remote/OrderEntryService";
HessianProxyFactory factory = new HessianProxyFactory();
orderEntryService = (OrderEntryService) factory.create(OrderEntryService.class, url);
List&BizOrderDO& bizOrderDOList = new ArrayList&BizOrderDO&();
BizOrderDO order = new BizOrderDO();
orderEntryService.方法(order转值进来);
3;上面的要启动TOMCAT
不用启用TOMCAT情况:
package com.xiu.tradecenter.
import java.beans.PropertyD
import java.lang.reflect.F
import java.lang.reflect.M
import java.lang.reflect.M
import mons.beanutils.PropertyU
import org.junit.AfterC
import org.junit.B
import org.junit.BeforeC
import org.springframework.context.support.FileSystemXmlApplicationC
public abstract class BaseTest {
private static String[] configs = new String[] {
"/../trade-biz-web/src/main/webconfig/spring-tc-dao.xml",
"/../trade-biz-web/target/trade/WEB-INF/spring-tc-jdbc.xml",
// "/../tc-server/target/tradecenter/WEB-INF/spring-tc-service.xml"
protected static FileSystemXmlApplicationContext appC
@BeforeClass
public static void setUp() throws Exception {
long start = System.currentTimeMillis();
System.out.println("正在加载配置文件...");
appContext = new FileSystemXmlApplicationContext(configs);
System.out.println("配置文件加载完毕,耗时:"
+ (System.currentTimeMillis() - start));
} catch (Exception e) {
e.printStackTrace();
protected boolean setProtected() {
public void autoSetBean() {
// 自动注入Spring管理的Bean,不用每个测试类都去获取。
PropertyDescriptor[] propertyDescriptors = PropertyUtils
.getPropertyDescriptors(this.getClass());
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
String propertyName = propertyDescriptor.getName();
Class&?& propertyType = propertyDescriptor.getPropertyType();
Method propertySetter = propertyDescriptor.getWriteMethod();
if (propertySetter == null) {
value = appContext.getBean(propertyName);
if (value == null) {
if (!propertyType.isInstance(value)) {
} catch (Exception e) {
propertySetter.invoke(this, new Object[] { value });
} catch (Exception e) {
if (setProtected()) {
Class&?& clazz = getClass();
Field[] fields = clazz.getDeclaredFields();
for (int i = 0; i & fields. i++) {
Field field = fields[i];
field.setAccessible(true);
if (!Modifier.isStatic(field.getModifiers())
&& Modifier.isProtected(field.getModifiers())) {
Object oldValue =
oldValue = field.get(this);
} catch (IllegalArgumentException e1) {
} catch (IllegalAccessException e1) {
if (oldValue == null) {
Object bean = appContext.getBean(field.getName());
field.setAccessible(true);
field.set(this, bean);
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
clazz = clazz.getSuperclass();
} while (!clazz.equals(BaseTest.class));
@AfterClass
public static void tearDown() throws Exception {
if (appContext != null) {
appContext.destroy();
public class DrawApplyBOTest extends BaseTest {
private DrawApplyWriterService drawApplyWriterS
public void setDrawApplyWriterService(
DrawApplyWriterService drawApplyWriterService) {
this.drawApplyWriterService = drawApplyWriterS
public void insertDrawApplyTest() throws DAOException {
DrawApplyDO drawApplyDO=new DrawApplyDO();
//drawApplyDO.setAccountTotal(300);
//drawApplyDO.setApplyAmount(200);
。。。。。。。
Result result=drawApplyWriterService.insertDrawApply(drawApplyDO);
System.out.println("i="+result.isSuccess());
MQ:
配置文件:
&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"&&
&!-- 配置JMS连接工厂 --&&
&bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory"&&
&property name="brokerURL" value="tcp://192.168.80.82:61616"/&&
&!-- 配置JMS模版 --&&
&bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"&&
&property name="connectionFactory" ref="connectionFactory"/&&
&!-- 发送消息的目的地(一个队列) --&&
&bean id="destination" class="org.mand.ActiveMQQueue"&&
&!-- 设置消息队列的名字 --&&
&constructor-arg index="0" value="HelloWorldQueue"/&&
package com.xiu.TestGoodsCenter.
import javax.jms.D
import javax.jms.JMSE
import javax.jms.M
import javax.jms.S
import org.springframework.context.ApplicationC
import org.springframework.context.support.ClassPathXmlApplicationC
import org.springframework.jms.core.JmsT
import org.springframework.jms.core.MessageC
发送消息
public class MySender {
* @param args
// TODO Auto-generated method stub
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"/applicationContext-test.xml");
JmsTemplate template = (JmsTemplate) ctx.getBean("jmsTemplate");
Destination destination = (Destination) ctx.getBean("destination");
template.send(destination, new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
return session
.createTextMessage("发送消息:Hello ActiveMQ Text Message!");
System.out.println("成功发送了一条JMS消息");
接收消息:
package com.xiu.TestGoodsCenter.
import javax.jms.D
import javax.jms.JMSE
import javax.jms.TextM
import org.springframework.context.ApplicationC
import org.springframework.context.support.ClassPathXmlApplicationC
import org.springframework.jms.core.JmsT
* 12.* 消息接收者 13.* 14.* @author jeff 15.
*/
public class MyReceiver {
public static void main(String[] args) throws JMSException {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"/applicationContext-test.xml");
JmsTemplate template = (JmsTemplate) ctx.getBean("jmsTemplate");
Destination destination = (Destination) ctx.getBean("destination");
while (true) {
TextMessage txtmsg = (TextMessage) template.receive(destination);
if (null != txtmsg)
System.out.println("收到消息内容为: " + txtmsg.getText());
1&在解压后的目录下,应存在一个memcached.exe文件,在命令执行安装命令,将其以系
统服务的形式安装,如图4.58所示。
cmd 进入目录然后执行命令:memcached.exe -d install
安装完毕后,在服务管理中即看到,MM已被安装为系统服务
2&安装完毕后,在服务管理中即看到,MM已被安装为系统服务,在系统服务里面启动服务
3&通过telnet连接MM启动后默认的端口11211 例:假如你的IP是:192.168.1.11 telnet 192.168.1.11 11211 连接服务器
通过telnet即可测试,例如,向MM中保存
key为netjava的值v2,保存时间是永不过期,然后再从MM中取出key为netjava的值,命令
执行格式如下:
set javanet 0 0 2
wq
STORED
get javanet
VALUE javanet 0 2
wq
END[color=red][/color]
MM中数据的存储和更新操作是以如下文本格式的协议规定的命令。
&command name& &key& &flags& &exptime& &bytes& \r\n
&data-block&
向MM中存取数据的常用命令和参数说明如下。
? &command name&为set,表示向MM中存入一条记录。
? key表示这条记录的键值。
? flags是一个十进制的int,表示存储记录时的客户端标志,在记录取出时会返回。
? exptim表示数据的过期时间,0表示永不过期,其他数值则表示有效的毫秒数,在过
期时间之后,客户端将取不到这条记录,MM中的过期记录会被清空或删除。
? bytes表示这条命令要保存的数据字节的长度,回车后即可输入要保存的数据。
&data-block&即要保存的数据,其长度必须和bytes值对应
Replace命令:用以替换MM中某key对应的值。
Delete命令:用以从MM中删除一条记录,
想知道当前MM服务器的状态相关数据,请输入stats命令
显示当前MM服务器中的读取字节数、缓存命中率、空间大小等
下载次数: 51
浏览: 110687 次
来自: Alien
内容其实不错,但是还是希望楼主给出原文地址或者是稍微排个版,代 ...
public class test{static int i= ...
请问下如何调用perl脚本啊?我用这个能够调用perl脚本,但 ...
鞋的很好啊,学习了。
挺不错的文章!求助:spring 整合ibatis启动报错
[问题点数:60分]
求助:spring 整合ibatis启动报错
[问题点数:60分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
本帖子已过去太久远了,不再提供回复功能。急问:用spring整合ibatis时候,当启动server时候,总报错,求解决_百度知道
急问:用spring整合ibatis时候,当启动server时候,总报错,求解决
dtd&SqlMapConfig,急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急;/insert&.org/springframework/ 必须声明元素类型 & ;-&#47://求大侠指点!-- 保存注册信息 --&gt!DOCTYPE sqlMap PUBLIC &quot: 15;&lt: ServletContext resource [&#47.&
&lt.org/dtd/sql-map-2. encoding=&quot.SAXParseEsqlMap&gt.User&WEB-INF/applicationContext-iB nested exception is com.xml文件的 insert 需要声明: Failed to parse config resource.
&quot.0&quot.xml];&#47.apache.EN&quot. lineNDTD SQL Map 2;&#47. nes1!;;insert&quot,password)values(#username#;User&quot.xml];&gt.NodeletE type=&& columnN&#47。下面是我的xml&User&quot,#password#)
&lt: 44;sqlMap&gt: Invocation of init method failed.action?&insert id=&quot.&#47.WEB-INF&#47?xml version=&
insert into
AFL_User(&gt.NestedIOE: Error parsing XML; parameterClass=&com.iBatis/&lt.sqlMapClient' /typeAlias alias=&;ibatis.0&#47。也就是总是说我的UTF-8&quot://ibatis.org/dtd/sql-map-2; defined in ServletContext resource [&#47这是报的错Error creating bean with name &#39:insertUser&quot.core
我有更好的答案
-- 保存注册信息 --&gt中文注释去掉试试,这句&
其他类似问题
为您推荐:
ibatis的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁iBatis整理——Spring环境下批处理实现 - Snowolf的意境空间! - ITeye技术网站
博客分类:
最近做一个小项目,用到Spring+iBatis。突然遇到一个很久远,却很实在的问题:在Spring下怎么使用iBatis的批处理实现?
大概是太久没有写Dao了,这部分真的忘得太干净了。
从4个层面分析这部分实现:
iBatis的基本实现
基于事务的iBatis的基本实现
基于事务的Spring+iBatis实现
基于回调方式的Spring+iBatis实现
1.iBatis的基本实现
iBatis通过SqlMapClient提供了一组方法用于批处理实现:
startBatch() 开始批处理
executeBatch() 执行批处理
代码如下:
public void create(List&Reply& replyList) {
// 开始批处理
sqlMapClient.startBatch();
for (Reply reply: replyList) {
// 插入操作
sqlMapClient.insert("Reply.create", reply);
// 执行批处理
sqlMapClient.executeBatch();
} catch (Exception e) {
e.printStackTrace();
这是基于iBatis的最基本实现,如果你一步一步debug,你会发现:其实,数据库已经执行了插入操作!
因此,除了这两个核心方法外,你还需要开启事务支持。否则,上述代码只不过是个空架子!
2.基于事务的iBatis的基本实现
事务处理:
startTransaction() 开始事务
commitTransaction() 提交事务
endTransaction() 结束事务
我们以insert操作为例,把它们结合到一起:
public void create(List&Reply& replyList) {
// 开始事务
sqlMapClient.startTransaction();
// 开始批处理
sqlMapClient.startBatch();
for (Reply reply: replyList) {
// 插入操作
sqlMapClient.insert("Reply.create", reply);
// 执行批处理
sqlMapClient.executeBatch();
// 提交事务
mitTransaction();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 结束事务
sqlMapClient.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
replyList是一个List,要把这个List插入到数据库,就需要经过这三个步骤:
开始批处理 startBatch()
插入&&&&& insert()
执行批处理 executeBatch()
如果要在Spring+iBatis中进行批处理实现,需要注意使用同一个sqlMapClient!同时,将提交事务的工作交给Spring统一处理!
3.基于事务的Spring+iBatis实现
public void create(List&Reply& replyList) {
if (!CollectionUtils.isEmpty(replyList)) {
// 注意使用同一个SqlMapClient会话
SqlMapClient sqlMapClient = sqlMapClientTemplate.getSqlMapClient();
// 开始事务
sqlMapClient.startTransaction();
// 开始批处理
sqlMapClient.startBatch();
for (Reply reply : replyList) {
// 插入操作
sqlMapClient.insert("Reply.create", reply);
// 执行批处理
sqlMapClient.executeBatch();
// 提交事务 交给Spring统一控制
// mitTransaction();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 结束事务
sqlMapClient.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
注意使用同一个sqlMapClient:
SqlMapClient sqlMapClient = sqlMapClientTemplate.getSqlMapClient();
如果直接sqlMapClientTemplate执行insert()方法,将会造成异常!
想想,还有什么问题?其实问题很明显,虽然解决了批处理实现的问题,却造成了事务代码入侵的新问题。 这么做,有点恶心!
除此之外,异常的处理也很恶心,不能够简单的包装为 DataAccessException 就无法被Spring当作统一的数据库操作异常做处理。
4.基于回调方式的Spring+iBatis实现
如果观察过Spring的源代码,你一定知道,Spring为了保持事务统一控制,在实现ORM框架时通常都采用了回调模式,从而避免了事务代码入侵的可能!
修改后的代码如下:
@SuppressWarnings("unchecked")
public void create(final List&Reply& replyList) {
// 执行回调
sqlMapClientTemplate.execute(new SqlMapClientCallback() {
// 实现回调接口
public Object doInSqlMapClient(SqlMapExecutor executor)
throws SQLException {
// 开始批处理
executor.startBatch();
for (Reply reply : replyList) {
// 插入操作
executor.insert("Reply.create", reply);
// 执行批处理
executor.executeBatch();
注意,待遍历的参数replyList需要加入final标识!即,待遍历对象不能修改!
引用public void create(final List&Reply& replyList)
这样做,就将事务处理的控制权完全交给了Spring!
SqlMapClientCallback 回调接口
doInSqlMapClient(SqlMapExecutor executor) 回调实现方法
DataAccessException 最终可能抛出的异常
通过上述修改,最终能够解决第三种实现方式中的种种不足!
Spring对iBatis提供的支持还是不够完善,即便是现在最新的Spring3.0.4。最开始,本打算用Spring3.0+iBatis3.0,结果Spring报错,说找不到“com.ibatis.xxxxx”完全是iBatis2.x的包路径!汗颜~ 还是Hibernate比较得宠!
做个小记录,呵呵!
浏览 12294
sunjichao 写道Copperfield 写道哥们,咨询个问题:第四种我试了一下, 在执行executor.executeBatch();时,一旦遇到异常,数据没有批量回滚,10条数据有2条异常,则正常插入8条数据,这个很是不解。。。 遇到同样的问题,求解释。有没有配置事务层?这段代码很久了,我都是在service用配置事务。如果没有事务控制,不会回滚!贴一下代码,看看是如果操作的
Copperfield 写道哥们,咨询个问题:第四种我试了一下, 在执行executor.executeBatch();时,一旦遇到异常,数据没有批量回滚,10条数据有2条异常,则正常插入8条数据,这个很是不解。。。 遇到同样的问题,求解释。有没有配置事务层?这段代码很久了,我都是在service用配置事务。如果没有事务控制,不会回滚!
哥们,咨询个问题:
第四种我试了一下, 在执行executor.executeBatch();时,一旦遇到异常,数据没有批量回滚,10条数据有2条异常,则正常插入8条数据,这个很是不解。。。
遇到同样的问题,求解释。
我就是有的第三种来处理的& 第四种方法没太看明白。代码入侵的问题,如果用回调方式,你不需要考虑捕获异常。
LZ是指第三种方式时直接使用SqlMapClientTemplate报错么?不好意思理解有误,第三种还没有试过,有时间也试一下 主要不是异常问题的考虑,主要是考虑事务统一处理!
。。。。。。。SPRING,自动拦截事务就可以了。无需回调这么麻烦。真正的事务处理仍然在spring中的aop控制之中,当然是通过声明式事务自动拦截!你可能没明白我的意思,或者说我没听明白你的涵义!起初,我也只是调用批处理,心想只要我做了声明式事务,就能够做到事务控制,但却发现:不加事务代码,SqlMapClient 不会执行批处理,反而是简单的单条数据插入!所以,开始加事务代码,发现很繁琐,又要手动控制事务,又要破获异常,仔细看Spring源码,才恍然大悟——spring中所有的ORM实现都是用了回调方式,目的就是要兼容事务控制,包括我所需要的批处理!PS:如果你有更好的办法,麻烦给点提示,我再测试测试!
浏览: 2047887 次
来自: 北京
@RequestBody json 转java 对 ...
zhang_sun 写道xiaomizhg 写道公匙能够解密私 ...
xiaomizhg 写道公匙能够解密私匙加密的内容么 ? 这样 ...
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
正要找得解决方案,给力,

我要回帖

更多关于 spring ibatis 事务 的文章

 

随机推荐