注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

让一切都逝去吧

排骨炖泥菜/猪肝炒苹果/鱼籽狗肉汤/狗头薏米汤

 
 
 

日志

 
 

使用junit4测试spring项目  

2013-05-16 19:26:00|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
      网上有好多例子讲怎样做了,主要是在类上使用注解
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class xxxManagerTest {
待测试的service就注入
@Autowired
private xxxManager manager;
然后就可以正常测试了。
      手上的例子出了问题
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/TransactionRequiredException
这个类在javaee-web-api 6.0的jar中,这个jar包没找到源码,据说里面只有接口没有实现。对于他的依赖是通过maven引入的
<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>
引入的原因是使用jax-ws生成的web services客户端需要用到其中的类来编译,而编译后真实运行又不需要这个jar包了。项目在web容器下(tomcat,weblogic)可以正常运行,应该是web容器中已经包含了对应的实现。但像这样直接java程序启动测试的时候就出错了。后来在这里
找到了解决办法,将javaee-web-api的依赖去掉,使用下面这些
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>2.2</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
      测试就成功运行了。
      上面这一堆依赖不一定全部需要,甚至javaee-web-api搭配其中某些jar应该也可以,因为servlet啥的本身就包含进javaee里去了。具体有效依赖没有时间测,以后有空测试了再补上吧。

      上面那个url中讲到可能是多了jpa的jar,检查过没有对jpa依赖,应该不是这个问题。

使用javaee-web-api时报的错是下面这个
Java.Lang.ClassFormatError : Absent Code Attribute In Method That Is Not Native Or Abstract In Class File
  评论这张
 
阅读(1614)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017