Java Maven编译Spring Petclinic项目时出错
我从下载了SpringPetClinic项目 Eclipse编译工作得很好——我可以从Tomcat运行该项目。但是,在maven编译中,使用相同的JDK jdk1.6.045时出现错误: org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder 必需:java.lang.Object。完全错误如下所示:Java Maven编译Spring Petclinic项目时出错,java,eclipse,spring,maven,Java,Eclipse,Spring,Maven,我从下载了SpringPetClinic项目 Eclipse编译工作得很好——我可以从Tomcat运行该项目。但是,在maven编译中,使用相同的JDK jdk1.6.045时出现错误: org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder 必需:java.lang.Object。完全错误如下所示: @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration("VisitsViewTests-config.xml")
@ActiveProfiles("jdbc")
public class VisitsViewTests {
@Autowired
private WebApplicationContext webApplicationContext;
private MockMvc mockMvc;
@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.webApplicationContext).build();
}
@Test
public void getVisitsXml() throws Exception {
ResultActions actions = this.mockMvc.perform(get("/vets.xml").accept(MediaType.APPLICATION_XML));
actions.andDo(print()); // action is logged into the console
actions.andExpect(status().isOk());
actions.andExpect(content().contentType("application/xml"));
actions.andExpect(xpath("/vets/vetList[id=1] /firstName").string(containsString("James")));
}
}
[错误]编译错误:[信息]
-------------------------------------------------------------[错误]/spring-petclinic/src/test/java/org/springframework/samples/petclinic/web/VisitsViewTests.java:[58,58]
\spring petclinic\src\test\java\org\springframework\samples\petclinic\web\VisitsViewTests.java:58:
不相容类型;推断的类型参数java.lang.Object不存在
符合找到的类型变量B的界限:
org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder
必需:java.lang.Object
使用调试输出运行时,一开始出现以下错误:
SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”
SLF4J:默认为无操作(NOP)记录器实现
SLF4J:有关详细信息,请参阅
进一步详情
VisitsViewTests的代码如下所示:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration("VisitsViewTests-config.xml")
@ActiveProfiles("jdbc")
public class VisitsViewTests {
@Autowired
private WebApplicationContext webApplicationContext;
private MockMvc mockMvc;
@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.webApplicationContext).build();
}
@Test
public void getVisitsXml() throws Exception {
ResultActions actions = this.mockMvc.perform(get("/vets.xml").accept(MediaType.APPLICATION_XML));
actions.andDo(print()); // action is logged into the console
actions.andExpect(status().isOk());
actions.andExpect(content().contentType("application/xml"));
actions.andExpect(xpath("/vets/vetList[id=1] /firstName").string(containsString("James")));
}
}
根据评论,我在pom.xml中更改了Spring版本,指向4.0.1。而不是4.0.0
<spring-framework.version>4.0.1.RELEASE</spring-framework.version>
4.0.1.0版本
这是一个奇怪的错误。您是否尝试过在调试输出打开的情况下运行(-X
)?结果如何?请看更正后的自我描述,一切正常。你能发布日志吗?可能是重复的