# WebApplicationContext is required



## vanBraQ (13. Mrz 2014)

Hallo Leute hab mal eine Frage vllt könnt ihr mir weiterhelfen 

Habe im Unterricht eine WebApplication zu bauen und möchte nun meine Rest-Schnittstelle testen. Dafür habe ich folgenden Test geschrieben:


```
package at.fdisk.core.rest;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.AnnotationConfigWebContextLoader;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.web.context.WebApplicationContext;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;

/**
 *
 */
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(loader = AnnotationConfigWebContextLoader.class, classes = at.fdisk.core.rest.RestApplicationConfig.class)
public class AusbildungApiTest {

	@Autowired
	private WebApplicationContext webApplicationContext;

	private MockMvc mockMvc;

	@Before
	public void setup() {
		this.mockMvc = webAppContextSetup(this.webApplicationContext).build();
	}

	@Test
	public void insertNewAusbildung() throws Exception {
		mockMvc.perform(
				post("/ausbildungen")
						.contentType(MediaType.APPLICATION_JSON)
						.content(
								"{\"startdatum\":\"2014-01-01\", \"kurzBezeichnung\":\"AS\", \"bezeichnung\":\"Atemschutz\", \"enddatum\":\"2014-01-02\"}"))
				.andExpect(status().isCreated());
	}

	@Test
	public void readFromEmptyListOfAusbildungen() throws Exception {
		mockMvc.perform(get("/ausbildungen")).andExpect(status().isOk());
	}
}
```

Wenn ich diesen Test in meiner IDE ausführe, bekomme ich keinen Fehler und alles läuft perfekt durch. Jedoch wenn ich um die CommandLine mit Maven das ganze Ding bauen möchte, bekomme ich immer folgenden Fehler:
mvn clean package...
java.lang.IllegalArgumentException: WebApplicationContext is required


Ich habe schon ein wenig Dr. Google befragt, jedoch bekomme ich dort keine Antwort die auf mein Problem zu trifft. Ich habe meine Config in der Klasse RestApplicationConfig vllt hilft das etwas weiter?

Hier die Klasse:

```
package at.fdisk.core.rest;

import at.fdisk.core.domain.DomainConfiguration;
import at.fdisk.core.repository.RepositoryConfiguration;
import at.fdisk.core.service.ServiceConfiguration;
import javax.sql.DataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;

@Configuration
@Import(value = { DomainConfiguration.class, RepositoryConfiguration.class,
		ServiceConfiguration.class })
@ComponentScan(basePackageClasses = RestPackage.class)
public class RestApplicationConfig {

	@Bean
	public DataSource dataSource() {
		return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2)
				.build();
	}
}
```

Kann mir vllt jemand weiter helfen ?

lg


----------

