GVKun编程网logo

org.springframework.test.web.servlet.result.MockMvcResultMatchers的实例源码(看透springmvc源代码分析与实践)

6

在本文中,我们将给您介绍关于org.springframework.test.web.servlet.result.MockMvcResultMatchers的实例源码的详细内容,并且为您解答看透sp

在本文中,我们将给您介绍关于org.springframework.test.web.servlet.result.MockMvcResultMatchers的实例源码的详细内容,并且为您解答看透springmvc源代码分析与实践的相关问题,此外,我们还将为您提供关于java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet、javax.servlet.ServletException:类 [org.glassfish.jersey.servlet.ServletContainer] 不是 Servlet、maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter、org.springframework.boot.test.autoconfigure.web.servlet.MockMvcBuilderCustomizer的实例源码的知识。

本文目录一览:

org.springframework.test.web.servlet.result.MockMvcResultMatchers的实例源码(看透springmvc源代码分析与实践)

org.springframework.test.web.servlet.result.MockMvcResultMatchers的实例源码(看透springmvc源代码分析与实践)

项目:training_storefront    文件:vendorRepositoryControllerTests.java   
@Test
public void findAllvendorstest(){

    List<String> vendorNames = new ArrayList<String>();

    for(vendorEntity vendorEntity : vendorEntityTestRig.getvendorEntitiesMap().values()){
        vendorNames.add(vendorEntity.getvendorName());
    }

    try {
        //http://localhost:8080/vendors/search/getvendorByvendorNameContainsIgnoreCase?vendorName=red%20hat
        mockmvc.perform(get("/vendors"))
                .andExpect(mockmvcResultMatchers.status().isOk())
                .andExpect(mockmvcResultMatchers.jsonPath("_embedded.vendors",hasSize(vendorEntityTestRig.getvendorEntitiesMap().size())))
                .andExpect(mockmvcResultMatchers.jsonPath("_embedded.vendors[*].vendorName",containsInAnyOrder(vendorNames.toArray())))
                .andDo(print());
    } catch (Exception e) {
        e.printstacktrace();
    }
}
项目:nixmash-blog    文件:AdminControllerTests.java   
@Test
@WithAdminUser
public void siteSettingsUpdated_UpdatesSiteOptions() throws Exception {

    RequestBuilder request = post("/admin/site/settings")
            .param(ISiteOption.SITE_NAME,siteOptionMapDTO.getSiteName())
            .param(ISiteOption.SITE_DESCRIPTION,siteOptionMapDTO.getSiteDescription())
            .param(ISiteOption.ADD_GOOGLE_ANALYTICS,String.valueOf(siteOptionMapDTO.getAddGoogleAnalytics()))
            .param(ISiteOption.GOOGLE_ANALYTICS_TRACKING_ID,siteOptionMapDTO.getGoogleAnalyticsTrackingId())
            .param(ISiteOption.USER_REGISTRATION,String.valueOf(siteOptionMapDTO.getUserRegistration()))
            .with(csrf());

    mvc.perform(request)
            .andExpect(model().attributeHasNoErrors())
            .andExpect(mockmvcResultMatchers.flash().attributeExists("FeedbackMessage"))
            .andExpect(redirectedUrl("/admin/site/settings"));
}
项目:nixmash-blog    文件:AdminPostsControllerTests.java   
@Test
public void updatePostWithValidData_RedirectsToPermalinkPage() throws Exception {

    String newTitle = "New Title for updatePostWithValidData_RedirectsToPermalinkPage Test";

    Post post = postService.getPostById(1L);
    RequestBuilder request = post("/admin/posts/update")
            .param("postId","1")
            .param("displayType",String.valueOf(post.getdisplayType()))
            .param("postContent",post.getPostContent())
            .param("twitterCardType",post.getPostMeta().getTwitterCardType().name())
            .param("postTitle",newTitle)
            .param("tags","updatePostWithValidData1,updatePostWithValidData2")
            .with(csrf());

    mvc.perform(request)
            .andExpect(model().hasNoErrors())
            .andExpect(mockmvcResultMatchers.flash().attributeExists("FeedbackMessage"))
            .andExpect(redirectedUrl("/admin/posts"));

    Post updatedPost = postService.getPostById(1L);
    assert (updatedPost.getPostTitle().equals(newTitle));
}
项目:spring-boot-CompletableFuture    文件:UserControllerIntTest.java   
@Test
public void testGetUser() throws Exception {

    final MockHttpServletRequestBuilder getRequest = get(UserController.REQUEST_PATH_API_USERS +
                                                                 "/590f86d92449343841cc2c3f")
            .accept(MediaType.APPLICATION_JSON);

    final MvcResult mvcResult = mockmvc
            .perform(getRequest)
            .andExpect(mockmvcResultMatchers.request().asyncStarted())
            .andReturn();

    mockmvc
            .perform(asyncdispatch(mvcResult))
            .andExpect(status().isOk())
            .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE))
            .andExpect(jsonPath("$.lastName").value("One"));
}
项目:cloud-s4-sdk-examples    文件:CostCenterServiceIntegrationTest.java   
@Test
public void testHttpGet() throws Exception {
    mockSdk.requestContextExecutor().execute(new Executable() {
        @Override
        public void execute() throws Exception {
            ResultActions action = mockmvc.perform(mockmvcRequestBuilders
                    .put("/callback/tenant/" + TENANT_ID_1));
            action.andExpect(mockmvcResultMatchers.status().is2xxSuccessful());

            action = mockmvc.perform(mockmvcRequestBuilders
                    .get("/cost-center"));
            action.andExpect(mockmvcResultMatchers.status().isOk());

            action = mockmvc.perform(mockmvcRequestBuilders
                    .delete("/callback/tenant/" + TENANT_ID_1));
            action.andExpect(mockmvcResultMatchers.status().is2xxSuccessful());
        }
    });
}
项目:cloud-s4-sdk-examples    文件:CostCenterServiceIntegrationTest.java   
@Test
public void testHttpPost() throws Exception {
    final String newCostCenterjson = buildcostCenterjson(COSTCENTER_ID_1);
    mockSdk.requestContextExecutor().execute(new Executable() {
        @Override
        public void execute() throws Exception {
            ResultActions action = mockmvc.perform(mockmvcRequestBuilders
                    .put("/callback/tenant/" + TENANT_ID_1));
            action.andExpect(mockmvcResultMatchers.status().is2xxSuccessful());

            action = mockmvc
                    .perform(mockmvcRequestBuilders
                            .request(HttpMethod.POST,"/cost-center")
                            .contentType(MediaType.APPLICATION_JSON)
                            .accept(MediaType.APPLICATION_JSON)
                            .content(newCostCenterjson));
            action.andExpect(mockmvcResultMatchers.status().isOk());

            action = mockmvc.perform(mockmvcRequestBuilders
                    .delete("/callback/tenant/" + TENANT_ID_1));
            action.andExpect(mockmvcResultMatchers.status().is2xxSuccessful());
        }
    });
}
项目:cloud-s4-sdk-examples    文件:CostCenterServiceIntegrationTest.java   
@Test
public void testHttpAddFailure() throws Exception {
    final SapClient sapClient = mockSdk.getErpSystem().getSapClient();

    final String newCostCenterjson = getNewCostCenterasJson(EXISTING_COSTCENTER_ID);
    // {"costcenter":"012346578","description":"demo","validFrom":...}

    // cost center already exists in database
    mockSdk.requestContextExecutor().execute(new Executable() {
        @Override
        public void execute() throws Exception {
            mockmvc
                .perform(mockmvcRequestBuilders
                    .request(HttpMethod.POST,"/api/v1/rest/client/"+sapClient+"/controllingarea/"+DEMO_CONTROLLING_AREA+"/costcenters")
                    .contentType(MediaType.APPLICATION_JSON)
                    .accept(MediaType.APPLICATION_JSON)
                    .content(newCostCenterjson))
                .andExpect(mockmvcResultMatchers
                    .status()
                    .is5xxServerError());
        }
    });
}
项目:cloud-s4-sdk-examples    文件:CostCenterServiceIntegrationTest.java   
@Test
public void testHttpAddSuccess() throws Exception {
    final SapClient sapClient = mockSdk.getErpSystem().getSapClient();

    final String newCostCenterjson = getNewCostCenterasJson(DEMO_COSTCENTER_ID);

    final RequestBuilder newCostCenterRequest = mockmvcRequestBuilders
            .request(HttpMethod.POST,"/api/v1/rest/client/"+sapClient+"/controllingarea/"+DEMO_CONTROLLING_AREA+"/costcenters")
            .param("testRun","true")
            .contentType(MediaType.APPLICATION_JSON)
            .accept(MediaType.APPLICATION_JSON)
            .content(newCostCenterjson);

    mockSdk.requestContextExecutor().execute(new Executable() {
        @Override
        public void execute() throws Exception {
            mockmvc.perform(newCostCenterRequest).andExpect(mockmvcResultMatchers.status().isOk());
        }
    });
}
项目:ItemStore    文件:ItemControllermockmvcTest.java   
@Test
public void getItemAtALocationShouldReturnAllItemsAtThisLocation() throws Exception {

    String expectedItemDescription = "Teller";

    given(this.itemService.getItemsByLocation("Regal A"))
            .willReturn(Arrays.asList(new Item(1l,"Teller","Regal A",LocalDate.Now())));

    // Testen von JsonPath
    // http://jsonpath.com

    this.mvc.perform(get("/item/Regal A")
            .accept(MediaType.APPLICATION_JSON_VALUE))
            .andExpect(status().isOk())
            .andExpect(mockmvcResultMatchers.jsonPath("$.[0].description").value(expectedItemDescription));
}
项目:ItemStore    文件:ItemControllermockmvcTest.java   
@Test
public void getItemsAtALocationShouldReturnAllItemsAtThisLocation() throws Exception {

    String expectedItemDescription1 = "Teller";
    String expectedItemDescription2 = "Untertasse";

    given(this.itemService.getItemsByLocation("Regal A"))
            .willReturn(Arrays.asList(new Item(1l,LocalDate.Now()),new Item(1l,"Untertasse",LocalDate.Now())));

    // Testen von JsonPath
    // http://jsonpath.com

    this.mvc.perform(get("/item/Regal A").accept(MediaType.APPLICATION_JSON_VALUE))
            .andExpect(status().isOk())
            .andExpect(mockmvcResultMatchers.jsonPath("$.[0].description").value(expectedItemDescription1))
            .andExpect(mockmvcResultMatchers.jsonPath("$.[1].description").value(expectedItemDescription2));
}
项目:ItemStore    文件:ItemControllermockmvcTest.java   
@Test
public void updateShouldReturnTheUpdatedItemAnd200() throws Exception {
    Item item = new Item(1l,null);

    given(this.itemService.update(any(Item.class))).willReturn(item);

    ObjectMapper mapper = new ObjectMapper();
    String req = mapper.writeValueAsstring(item);

    this.mvc.perform(put("/item",item)
            .contentType(MediaType.APPLICATION_JSON_VALUE)
            .accept(MediaType.APPLICATION_JSON)
            .content(req))
            .andExpect(status().isOk())
            .andExpect(mockmvcResultMatchers.jsonPath("$.location").value(item.getLocation()));
}
项目:ItemStore    文件:ItemControllermockmvcTest.java   
@Test
public void createItem() throws Exception {
    Item item = new Item(1l,null);
    ObjectMapper mapper = new ObjectMapper();
    String req = mapper.writeValueAsstring(item);

    String expectedItemDescription = "Teller";
    when(itemService.create(any(Item.class))).thenReturn(item);

    this.mvc.perform(post("/item",item)
            .contentType(MediaType.APPLICATION_JSON)
            .accept(MediaType.APPLICATION_JSON)
            .content(req))
            .andExpect(status().isCreated())
            .andExpect(mockmvcResultMatchers.jsonPath("$.description").value(expectedItemDescription));

}
项目:Learning-Spring-5.0    文件:TestAddBookController_Integration.java   
@Test
public void testAddBook() {
    try {
        mockmvc.perform(mockmvcRequestBuilders.post("/addBook.htm")

                        .contentType(MediaType.APPLICATION_FORM_URLENCODED)
                        .param("bookName","Book_test")
                        .param("author","author_test")
                        .param("description","adding book for test")
                        .param("ISBN","1234")
                        .param("price","9191")
                        .param("publication","This is the test publication")
                        .requestAttr("book",new Book()))
                .andExpect(mockmvcResultMatchers.view().name("display"))
                .andExpect(mockmvcResultMatchers.model().attribute("auth_name","author_test"))
                .andDo(mockmvcResultHandlers.print());
        ;
    } catch (Exception e) {
        // Todo: handle exception
        fail(e.getMessage());

    }

}
项目:Learning-Spring-5.0    文件:TestAddBookController.java   
@Test
public void testAddBook() {
    try {
        mockmvc.perform(mockmvcRequestBuilders.post("/addBook.htm")

                        .contentType(MediaType.APPLICATION_FORM_URLENCODED)
                        .param("bookName","author_test"))
                .andDo(mockmvcResultHandlers.print());
        ;
    } catch (Exception e) {
        // Todo: handle exception
        fail(e.getMessage());

    }

}
项目:Learning-Spring-5.0    文件:TestAddBookController.java   
@Test
public void testAddBook_Form_validation() {
    try {

        mockmvc.perform(mockmvcRequestBuilders.post("/addBook.htm")

                .contentType(MediaType.APPLICATION_FORM_URLENCODED)
                .param("bookName","Book_test")
                .param("author","author_test")
                .param("description","adding book for test")
                .param("ISBN","1234")
                .param("price","9191")
                .param("publication","This is the test publication")
                .requestAttr("book",new Book()))
                .andExpect(mockmvcResultMatchers.view().name("bookForm"))
                .andExpect(
                        mockmvcResultMatchers
                                .model()
                                .attributeHasErrors("book"))

                .andDo(mockmvcResultHandlers.print());
    } catch (Exception e) {
        // Todo: handle exception
        fail(e.getMessage());
        e.printstacktrace();
    }
}
项目:NGB-master    文件:ProjectControllerTest.java   
private List<ProjectVO> loadMy() throws Exception {
    ResultActions actions = mvc()
        .perform(get(URL_LOAD_MY_PROJECTS)
                     .contentType(EXPECTED_CONTENT_TYPE))
        .andExpect(mockmvcResultMatchers.status().isOk())
        .andExpect(mockmvcResultMatchers.content().contentType(EXPECTED_CONTENT_TYPE))
        .andExpect(mockmvcResultMatchers.jsonPath(JPATH_PAYLOAD).exists())
        .andExpect(mockmvcResultMatchers.jsonPath(JPATH_STATUS).value(ResultStatus.OK.name()));
    actions.andDo(mockmvcResultHandlers.print());

    ResponseResult<List<ProjectVO>> myProjects = getobjectMapper()
        .readValue(actions.andReturn().getResponse().getContentAsByteArray(),getTypeFactory().constructParametrizedType(ResponseResult.class,ResponseResult.class,getTypeFactory().constructParametrizedType(List.class,List.class,ProjectVO.class)));

    Assert.assertNotNull(myProjects.getPayload());
    Assert.assertFalse(myProjects.getPayload().isEmpty());

    return myProjects.getPayload();
}
项目:NGB-master    文件:ProjectControllerTest.java   
private ProjectVO loadProject(long projcetId) throws Exception {
    ResultActions actions = mvc()
        .perform(get(String.format(URL_LOAD_PROJECT,projcetId)).contentType(EXPECTED_CONTENT_TYPE))
        .andExpect(mockmvcResultMatchers.status().isOk())
        .andExpect(mockmvcResultMatchers.content().contentType(EXPECTED_CONTENT_TYPE))
        .andExpect(mockmvcResultMatchers.jsonPath(JPATH_PAYLOAD).exists())
        .andExpect(mockmvcResultMatchers.jsonPath(JPATH_STATUS).value(ResultStatus.OK.name()));
    actions.andDo(mockmvcResultHandlers.print());

    ResponseResult<ProjectVO> res = getobjectMapper()
        .readValue(actions.andReturn().getResponse().getContentAsByteArray(),ProjectVO.class));

    ProjectVO loadedProject = res.getPayload();
    Assert.assertNotNull(loadedProject);
    return loadedProject;
}
项目:NGB-master    文件:FilterControllerTest.java   
@Test
@Transactional(propagation = Propagation.required,rollbackFor = Throwable.class)
public void testSearchGenesInProject() throws Exception {
    GenesearchQuery genesearchQuery = new GenesearchQuery();
    genesearchQuery.setSearch("ENS");
    genesearchQuery.setVcfIds(Collections.singletonList(vcfFile.getId()));

    ResultActions actions = mvc()
        .perform(post(URL_FILTER_SEARCH_GEnes).content(
            getobjectMapper().writeValueAsstring(genesearchQuery)).contentType(EXPECTED_CONTENT_TYPE))
        .andExpect(mockmvcResultMatchers.status().isOk())
        .andExpect(mockmvcResultMatchers.content().contentType(EXPECTED_CONTENT_TYPE))
        .andExpect(mockmvcResultMatchers.jsonPath(JPATH_PAYLOAD).exists())
        .andExpect(mockmvcResultMatchers.jsonPath(JPATH_STATUS).value(ResultStatus.OK.name()))
        .andDo(mockmvcResultHandlers.print());

    ResponseResult<Set<String>> geneNamesAvailable = getobjectMapper()
        .readValue(actions.andReturn().getResponse().getContentAsByteArray(),getTypeFactory().constructParametrizedType(Set.class,Set.class,String.class)));

    Assert.assertFalse(geneNamesAvailable.getPayload().isEmpty());
}
项目:NGB-master    文件:FilterControllerTest.java   
@Test
@Transactional(propagation = Propagation.required,rollbackFor = Throwable.class)
public void testGetFieldInfo() throws Exception {
    ResultActions actions = mvc()
        .perform(post(URL_FILTER_INFO).content(getobjectMapper().writeValueAsBytes(
            Collections.singletonList(vcfFile.getId()))).contentType(EXPECTED_CONTENT_TYPE))
        .andExpect(mockmvcResultMatchers.status().isOk())
        .andExpect(mockmvcResultMatchers.content().contentType(EXPECTED_CONTENT_TYPE))
        .andExpect(mockmvcResultMatchers.jsonPath(JPATH_PAYLOAD).exists())
        .andExpect(mockmvcResultMatchers.jsonPath(JPATH_STATUS).value(ResultStatus.OK.name()));
    actions.andDo(mockmvcResultHandlers.print());

    ResponseResult<VcfFilterInfo> infoRes = getobjectMapper().readValue(
        actions.andReturn().getResponse().getContentAsByteArray(),VcfFilterInfo.class));

    Assert.assertNotNull(infoRes.getPayload());
    Assert.assertFalse(infoRes.getPayload().getAvailableFilters().isEmpty());
    Assert.assertNull(infoRes.getPayload().getInfoItemmap());
    Assert.assertFalse(infoRes.getPayload().getInfoItems().isEmpty());
}
项目:NGB-master    文件:FilterControllerTest.java   
@Test
@Transactional(propagation = Propagation.required,rollbackFor = Throwable.class)
public void testGroupVariations() throws Exception {
    VcfFilterForm vcfFilterForm = new VcfFilterForm();
    vcfFilterForm.setVcfFileIds(Collections.singletonList(vcfFile.getId()));

    ResultActions actions = mvc()
        .perform(post(URL_FILTER_GROUP).content(getobjectMapper().writeValueAsstring(vcfFilterForm))
                     .param("groupBy","VARIATION_TYPE")
                     .contentType(EXPECTED_CONTENT_TYPE))
        .andExpect(mockmvcResultMatchers.status().isOk())
        .andExpect(mockmvcResultMatchers.content().contentType(EXPECTED_CONTENT_TYPE))
        .andExpect(mockmvcResultMatchers.jsonPath(JPATH_PAYLOAD).exists())
        .andExpect(mockmvcResultMatchers.jsonPath(JPATH_STATUS).value(ResultStatus.OK.name()));
    actions.andDo(mockmvcResultHandlers.print());

    ResponseResult<List<Group>> groupRes = getobjectMapper()
        .readValue(actions.andReturn().getResponse().getContentAsByteArray(),Group.class)));

    Assert.assertFalse(groupRes.getPayload().isEmpty());
}
项目:NGB-master    文件:ReferenceControllerTest.java   
@Ignore
@Test
@Transactional(propagation = Propagation.REQUIRES_NEW,rollbackFor = Exception.class)
public void testSaveAndGetTrackDataGA4GH() throws Exception {

    FileRegistrationRequest request;
    ResultActions actions;
    // 1. tries to save a genome with all parameters
    request = new FileRegistrationRequest();
    request.setPath(REFERENCE_SET_ID);
    request.setType(BiologicalDataItemResourceType.GA4GH);
    request.setName(PLAIN_GENOME_NAME);

    actions = mvc()
            .perform(post(REGISTER_GENOME_IN_FASTA_FORMAT).content(getobjectMapper().writeValueAsstring(request))
                    .contentType(EXPECTED_CONTENT_TYPE))
            .andExpect(mockmvcResultMatchers.status().isOk())
            .andExpect(mockmvcResultMatchers.content().contentType(EXPECTED_CONTENT_TYPE))
            .andExpect(mockmvcResultMatchers.jsonPath(JPATH_PAYLOAD).exists())
            .andExpect(mockmvcResultMatchers.jsonPath(JPATH_STATUS).value(ResultStatus.OK.name()));
    final Reference ref2 = parseReference(actions.andReturn().getResponse().getContentAsByteArray()).getPayload();
    Assert.assertNotNull("Genome ID shouldn't be null.",ref2.getId());
    Assert.assertEquals("Unexpected auto-generated name for a genome.",PLAIN_GENOME_NAME,ref2.getName());
    actions.andDo(print());
}
项目:castlemock    文件:DeleteRestMockResponseControllerTest.java   
@Test
public void testDeleteMockResponse() throws Exception {
    final RestProjectDto restProjectDto = RestProjectDtoGenerator.generateRestProjectDto();
    final RestApplicationDto restApplicationDto = RestApplicationDtoGenerator.generateRestApplicationDto();
    final RestResourceDto restResourceDto = RestResourceDtoGenerator.generateRestResourceDto();
    final RestMethodDto restMethodDto = RestMethodDtoGenerator.generateRestMethodDto();
    final RestMockResponseDto restMockResponseDto = RestMockResponseDtoGenerator.generateRestMockResponseDto();
    when(serviceProcessor.process(any(ReadRestMockResponseInput.class))).thenReturn(new ReadRestMockResponSEOutput(restMockResponseDto));
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.get(SERVICE_URL + PROJECT + SLASH + restProjectDto.getId() + SLASH + APPLICATION + SLASH + restApplicationDto.getId() + SLASH + RESOURCE + SLASH + restResourceDto.getId() + SLASH + METHOD + SLASH + restMethodDto.getId() + SLASH + RESPONSE + SLASH + restMockResponseDto.getId() + SLASH + DELETE);
    mockmvc.perform(message)
            .andExpect(mockmvcResultMatchers.status().isOk())
            .andExpect(mockmvcResultMatchers.model().size(5 + GLOBAL_VIEW_MODEL_COUNT))
            .andExpect(mockmvcResultMatchers.forwardedUrl(INDEX))
            .andExpect(mockmvcResultMatchers.model().attribute(PARTIAL,PAGE))
            .andExpect(mockmvcResultMatchers.model().attribute(REST_PROJECT_ID,restProjectDto.getId()))
            .andExpect(mockmvcResultMatchers.model().attribute(REST_APPLICATION_ID,restApplicationDto.getId()))
            .andExpect(mockmvcResultMatchers.model().attribute(REST_RESOURCE_ID,restResourceDto.getId()))
            .andExpect(mockmvcResultMatchers.model().attribute(REST_METHOD_ID,restMethodDto.getId()))
            .andExpect(mockmvcResultMatchers.model().attribute(REST_MOCK_RESPONSE,restMockResponseDto));
}
项目:castlemock    文件:SearchControllerTest.java   
@Test
public void testcreateuser() throws Exception {
    final List<SearchResult> searchResults = new ArrayList<SearchResult>();
    final SearchResult searchResult = new SearchResult();
    searchResult.setDescription("Description");
    searchResult.setLink("Link");
    searchResult.setTitle("Title");

    final SearchCommand searchCommand = new SearchCommand();
    searchCommand.setQuery("Query");

    when(projectServiceFacade.search(any(SearchQuery.class))).thenReturn(searchResults);
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.post(SERVICE_URL,searchCommand);
    mockmvc.perform(message)
            .andExpect(mockmvcResultMatchers.status().isOk())
            .andExpect(mockmvcResultMatchers.model().size(1 + GLOBAL_VIEW_MODEL_COUNT))
            .andExpect(mockmvcResultMatchers.forwardedUrl(INDEX))
            .andExpect(mockmvcResultMatchers.model().attribute(PARTIAL,PAGE))
            .andExpect(mockmvcResultMatchers.model().attribute(SEARCH_RESULTS,searchResults));
}
项目:castlemock    文件:RestResourceControllerTest.java   
@Test
public void testGetServiceValid() throws Exception {
    final RestProjectDto restProjectDto = RestProjectDtoGenerator.generateRestProjectDto();
    final RestApplicationDto restApplicationDto = RestApplicationDtoGenerator.generateRestApplicationDto();
    final RestResourceDto restResourceDto = RestResourceDtoGenerator.generateRestResourceDto();
    when(serviceProcessor.process(isA(ReadRestResourceInput.class))).thenReturn(new ReadRestResourceOutput(restResourceDto));
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.get(SERVICE_URL + PROJECT + SLASH + restProjectDto.getId() + SLASH + APPLICATION + SLASH + restApplicationDto.getId() + SLASH + RESOURCE + SLASH + restResourceDto.getId());
    ResultActions result = mockmvc.perform(message)
            .andExpect(mockmvcResultMatchers.status().isOk())
            .andExpect(mockmvcResultMatchers.model().size(5 + GLOBAL_VIEW_MODEL_COUNT))
            .andExpect(mockmvcResultMatchers.forwardedUrl(INDEX))
            .andExpect(mockmvcResultMatchers.model().attribute(PARTIAL,restApplicationDto.getId()))
            .andExpect(mockmvcResultMatchers.model().attribute(REST_RESOURCE,restResourceDto));
    RestResourceDto restResourceDtoResponse = (RestResourceDto) result.andReturn().getModelAndView().getModel().get(REST_RESOURCE);
    String hostAddress = restResourceController.getHostAddress();
}
项目:castlemock    文件:UpdateCurrentUserControllerTest.java   
@Test
public void testUpdate() throws Exception {
    final UserDto userDto = UserDtoGenerator.generateUserDto();

    final UpdateCurrentUserOutput updateCurrentUserOutput = new UpdateCurrentUserOutput(userDto);
    when(serviceProcessor.process(any(UpdateCurrentUserInput.class))).thenReturn(updateCurrentUserOutput);


    final UpdateCurrentUserCommand updateCurrentUserCommand = new UpdateCurrentUserCommand();
    updateCurrentUserCommand.setUser(userDto);
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.post(SERVICE_URL,updateCurrentUserCommand);

    mockmvc.perform(message)
            .andExpect(mockmvcResultMatchers.status().isFound())
            .andExpect(mockmvcResultMatchers.model().size(1));
}
项目:NGB    文件:ProjectControllerTest.java   
private ProjectVO loadProject(long projcetId) throws Exception {
    ResultActions actions = mvc()
        .perform(get(String.format(URL_LOAD_PROJECT,ProjectVO.class));

    ProjectVO loadedProject = res.getPayload();
    Assert.assertNotNull(loadedProject);
    return loadedProject;
}
项目:castlemock    文件:SoapAddWSDLControllerTest.java   
@Test
public void testAddWSDLPostLink() throws Exception {
    final SoapProjectDto soapProjectDto = SoapProjectDtoGenerator.generateSoapProjectDto();
    final List<File> files = new ArrayList<>();
    final WSDLFileUploadForm uploadForm = new WSDLFileUploadForm();
    final List<multipartfile> uploadedFiles = new ArrayList<>();
    uploadForm.setFiles(uploadedFiles);


    when(serviceProcessor.process(any(ReadSoapProjectInput.class))).thenReturn(new ReadSoapProjectOutput(soapProjectDto));
    when(fileManager.uploadFiles(anyString())).thenReturn(files);
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.post(SERVICE_URL + SLASH + PROJECT + SLASH + soapProjectDto.getId() + SLASH + ADD + SLASH + WSDL).param("type","link").requestAttr("uploadForm",uploadForm);
    mockmvc.perform(message)
            .andExpect(mockmvcResultMatchers.status().isFound())
            .andExpect(mockmvcResultMatchers.model().size(1));
    Mockito.verify(fileManager,times(1)).uploadFiles(anyString());
}
项目:castlemock    文件:RestMockResponseControllerTest.java   
@Test
public void testGetMockResponse() throws Exception {
    final RestProjectDto restProjectDto = RestProjectDtoGenerator.generateRestProjectDto();
    final RestApplicationDto restApplicationDto = RestApplicationDtoGenerator.generateRestApplicationDto();
    final RestResourceDto restResourceDto = RestResourceDtoGenerator.generateRestResourceDto();
    final RestMethodDto restMethodDto = RestMethodDtoGenerator.generateRestMethodDto();
    final RestMockResponseDto restMockResponseDto = RestMockResponseDtoGenerator.generateRestMockResponseDto();
    when(serviceProcessor.process(any(ReadRestMockResponseInput.class))).thenReturn(new ReadRestMockResponSEOutput(restMockResponseDto));
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.get(SERVICE_URL + PROJECT + SLASH + restProjectDto.getId() + SLASH + APPLICATION + SLASH + restApplicationDto.getId() + SLASH + RESOURCE + SLASH + restResourceDto.getId() + SLASH + METHOD + SLASH + restMethodDto.getId() + SLASH + RESPONSE + SLASH + restMockResponseDto.getId());
    mockmvc.perform(message)
            .andExpect(mockmvcResultMatchers.status().isOk())
            .andExpect(mockmvcResultMatchers.model().size(6 + GLOBAL_VIEW_MODEL_COUNT))
            .andExpect(mockmvcResultMatchers.forwardedUrl(INDEX))
            .andExpect(mockmvcResultMatchers.model().attribute(PARTIAL,restMethodDto.getId()))
            .andExpect(mockmvcResultMatchers.model().attribute(DEMO_MODE,false))
            .andExpect(mockmvcResultMatchers.model().attribute(REST_MOCK_RESPONSE,restMockResponseDto));
}
项目:unity    文件:UserControllerIT.java   
@Test
public void getAllUsers_Success() throws Exception {
    mvc.perform(mockmvcRequestBuilders.request(HttpMethod.GET,"/api/v1/user")
            .accept(contentType)
            .contentType(contentType)
            .header(authHeaderName,token))
            .andExpect(mockmvcResultMatchers.status().isOk())
            .andExpect(mockmvcResultMatchers.jsonPath("$[0].id",is(user.getId())))
            .andExpect(mockmvcResultMatchers.jsonPath("$[0].username",is(user.getUsername())))
            .andExpect(mockmvcResultMatchers.jsonPath("$[0].password",is(user.getpassword())))
            .andExpect(mockmvcResultMatchers.jsonPath("$[0].createdAt",is(user.getCreatedAt().getTime())))
            .andExpect(mockmvcResultMatchers.jsonPath("$[0].updatedAt",is(user.getUpdatedAt().getTime())))
            .andExpect(mockmvcResultMatchers.jsonPath("$[0].authorities",is(user.getAuthorities()
                    .stream()
                    .map(Authority::getAuthority)
                    .collect(Collectors.toList()))));
}
项目:castlemock    文件:DeleteSoapMockResponseControllerTest.java   
@Test
public void testConfirmDeletationOfMultipleMockResponses() throws Exception {
    final SoapProjectDto projectDto = SoapProjectDtoGenerator.generateSoapProjectDto();
    final SoapPortDto applicationDto = SoapPortDtoGenerator.generateSoapPortDto();
    final SoapOperationDto soapOperationDto = SoapOperationDtoGenerator.generateSoapOperationDto();
    final SoapMockResponseDto soapMockResponseDto = SoapMockResponseDtoGenerator.generateSoapMockResponseDto();
    final DeleteSoapMockResponsesCommand deleteSoapMockResponsesCommand = new DeleteSoapMockResponsesCommand();
    deleteSoapMockResponsesCommand.setSoapMockResponses(new ArrayList<SoapMockResponseDto>());
    deleteSoapMockResponsesCommand.getSoapMockResponses().add(soapMockResponseDto);

    when(serviceProcessor.process(any(DeleteSoapMockResponseInput.class))).thenReturn(new DeleteSoapMockResponSEOutput());
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.post(SERVICE_URL + PROJECT + SLASH + projectDto.getId() + SLASH + PORT + SLASH + applicationDto.getId() + SLASH + OPERATION + SLASH + soapOperationDto.getId() + SLASH + RESPONSE + SLASH + DELETE + SLASH + CONFIRM);
    mockmvc.perform(message)
            .andExpect(mockmvcResultMatchers.status().isFound())
            .andExpect(mockmvcResultMatchers.model().size(1));
}
项目:castlemock    文件:UpdateRestMethodControllerTest.java   
@Test
public void testUpdateMethod() throws Exception {
    final RestProjectDto restProjectDto = RestProjectDtoGenerator.generateRestProjectDto();
    final RestApplicationDto restApplicationDto = RestApplicationDtoGenerator.generateRestApplicationDto();
    final RestResourceDto restResourceDto = RestResourceDtoGenerator.generateRestResourceDto();
    final RestMethodDto restMethodDto = RestMethodDtoGenerator.generateRestMethodDto();
    when(serviceProcessor.process(any(ReadRestMethodInput.class))).thenReturn(new ReadRestMethodoutput(restMethodDto));
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.get(SERVICE_URL + PROJECT + SLASH + restProjectDto.getId() + SLASH + APPLICATION + SLASH + restApplicationDto.getId() + SLASH + RESOURCE + SLASH + restResourceDto.getId() + SLASH + METHOD + SLASH + restMethodDto.getId() + SLASH + UPDATE);
    mockmvc.perform(message)
            .andExpect(mockmvcResultMatchers.status().isOk())
            .andExpect(mockmvcResultMatchers.model().size(8 + GLOBAL_VIEW_MODEL_COUNT))
            .andExpect(mockmvcResultMatchers.forwardedUrl(INDEX))
            .andExpect(mockmvcResultMatchers.model().attribute(PARTIAL,restResourceDto.getId()))
            .andExpect(mockmvcResultMatchers.model().attribute(REST_METHOD,restMethodDto));
}
项目:castlemock    文件:UpdateSoapPortControllerTest.java   
@Test
public void testUpdatePortEndpoint() throws Exception {
    final UpdateSoapPortsEndpointCommand command = new UpdateSoapPortsEndpointCommand();
    final SoapProjectDto soapProjectDto = SoapProjectDtoGenerator.generateSoapProjectDto();
    final SoapPortDto soapPortDto = SoapPortDtoGenerator.generateSoapPortDto();
    final List<SoapPortDto> soapPorts = new ArrayList<SoapPortDto>();
    soapPorts.add(soapPortDto);
    command.setSoapPorts(soapPorts);
    command.setForwardedEndpoint("/new/endpoint");

    when(serviceProcessor.process(any(Input.class))).thenReturn(new UpdateSoapPortOutput(soapPortDto));
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.post(SERVICE_URL + PROJECT + SLASH + soapProjectDto.getId() + SLASH + PORT +  SLASH + UPDATE + SLASH + CONFIRM,command);
    mockmvc.perform(message)
            .andExpect(mockmvcResultMatchers.status().isFound())
            .andExpect(mockmvcResultMatchers.model().size(1));
}
项目:unity    文件:UserAnalyticsControllerIT.java   
@Test
public void getAnalyticsByUserId_Success_IfAnalyticsAndUserPresent() throws Exception {
    mvc.perform(mockmvcRequestBuilders.request(HttpMethod.GET,"/api/v1/user/" + user.getId() + "/analytics")
            .accept(contentType)
            .contentType(contentType)
            .header(authHeaderName,token))
            .andExpect(mockmvcResultMatchers.status().isOk())
            .andExpect(mockmvcResultMatchers.jsonPath("$.id",is(analytics.getId())))
            .andExpect(mockmvcResultMatchers.jsonPath("$.userId",is(analytics.getUserId())))
            .andExpect(mockmvcResultMatchers.jsonPath("$.createdAt",is(analytics.getCreatedAt().getTime())))
            .andExpect(mockmvcResultMatchers.jsonPath("$.updatedAt",is(analytics.getUpdatedAt().getTime())))
            .andExpect(mockmvcResultMatchers.jsonPath("$.reports[0].result",is(analytics.getReports().get(0).getResult())))
            .andExpect(mockmvcResultMatchers.jsonPath("$.reports[0].id",is(analytics.getReports().get(0).getId())))
            .andExpect(mockmvcResultMatchers.jsonPath("$.reports[0].resource",is(analytics.getReports().get(0).getResource().toString())))
            .andExpect(mockmvcResultMatchers.jsonPath("$.reports[0].analyzedAt",is(analytics.getReports().get(0).getAnalyzedAt().getTime())))
            .andExpect(mockmvcResultMatchers.jsonPath("$.reports[0].analysisTime",is(analytics.getReports().get(0).getAnalysisTime().intValue())));
}
项目:castlemock    文件:ProjectOverviewControllerTest.java   
@Test
public void testGetServiceValid() throws Exception {
    final List<ProjectDto> projectDtos = new ArrayList<ProjectDto>();
    for(int index = 0; index < MAX_PROJECT_COUNT; index++){
        final ProjectDto projectDto = ProjectDtoGenerator.generateProjectDto();
        projectDtos.add(projectDto);
    }

    when(projectServiceComponent.findAll()).thenReturn(projectDtos);
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.get(SERVICE_URL);
    mockmvc.perform(message)
            .andExpect(mockmvcResultMatchers.status().isOk())
            .andExpect(mockmvcResultMatchers.model().size(2 + GLOBAL_VIEW_MODEL_COUNT))
            .andExpect(mockmvcResultMatchers.forwardedUrl(INDEX))
            .andExpect(mockmvcResultMatchers.model().attribute(PARTIAL,PAGE))
            .andExpect(mockmvcResultMatchers.model().attribute(PROJECTS,projectDtos));
}
项目:castlemock    文件:RestImportDeFinitionControllerTest.java   
@Test
public void testImportPostFile() throws Exception {
    final RestProjectDto restProjectDto = RestProjectDtoGenerator.generateRestProjectDto();
    final List<File> files = new ArrayList<File>();
    final RestDeFinitionFileUploadForm uploadForm = new RestDeFinitionFileUploadForm();
    final List<multipartfile> uploadedFiles = new ArrayList<>();
    uploadForm.setFiles(uploadedFiles);

    when(serviceProcessor.process(any(ReadRestProjectInput.class))).thenReturn(new ReadRestProjectOutput(restProjectDto));
    when(fileManager.uploadFiles(anylistof(multipartfile.class))).thenReturn(files);
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.post(SERVICE_URL + SLASH + PROJECT + SLASH + restProjectDto.getId() + SLASH + IMPORT).param(TYPE_ParaMETER,FILE).requestAttr("uploadForm",times(1)).uploadFiles(anylistof(multipartfile.class));
}
项目:castlemock    文件:SoapPortControllerTest.java   
@Test
public void getSoapPort() throws Exception {
    final SoapProjectDto soapProjectDto = SoapProjectDtoGenerator.generateSoapProjectDto();
    final SoapPortDto soapPortDto = SoapPortDtoGenerator.generateSoapPortDto();
    final SoapOperationDto soapOperationDto = SoapOperationDtoGenerator.generateSoapOperationDto();
    final List<SoapOperationDto> operationDtos = new ArrayList<SoapOperationDto>();
    operationDtos.add(soapOperationDto);
    soapPortDto.setoperations(operationDtos);
    when(serviceProcessor.process(any(ReadSoapPortInput.class))).thenReturn(new ReadSoapPortOutput(soapPortDto));
    final MockHttpServletRequestBuilder message = mockmvcRequestBuilders.get(SERVICE_URL + PROJECT + SLASH + soapProjectDto.getId() + SLASH + PORT + SLASH + soapPortDto.getId() + SLASH);
    ResultActions result = mockmvc.perform(message)
            .andExpect(mockmvcResultMatchers.status().isOk())
            .andExpect(mockmvcResultMatchers.model().size(4 + GLOBAL_VIEW_MODEL_COUNT))
            .andExpect(mockmvcResultMatchers.forwardedUrl(INDEX))
            .andExpect(mockmvcResultMatchers.model().attribute(PARTIAL,PAGE))
            .andExpect(mockmvcResultMatchers.model().attribute(SOAP_PORT,soapPortDto));
    SoapPortDto soapPortDtoResponse = (SoapPortDto) result.andReturn().getModelAndView().getModel().get(SOAP_PORT);
}
项目:cdct    文件:CustomerServiceRestdocsApplicationTests.java   
@Test
public void getCustomerByIdShouldReturnCustomer() throws Exception {

    Mockito
            .when(this.customerRepository.findOne(1L))
            .thenReturn(c1);

    mockmvc.perform(mockmvcRequestBuilders.get("/customers/1"))
            .andExpect(mockmvcResultMatchers.status().is2xxSuccessful())
            .andExpect(mockmvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE))
            .andExpect(mockmvcResultMatchers.jsonPath("@.id").value(1L))
            .andDo(mockmvcRestDocumentation.document("customerById"));
}

java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

今天朋友发了个maven项目给我看,问我为什么启动不了。说实话,一直用Jfinal都快不会用spring了… 还是决定看看。

接收了文件,是maven构建的,打开eclipse,导入maven项目,然后部署到tomcat,启动tomcat,就报错了:“java.lang.ClassNotFoundException: org.springframework.web. servlet.DispatcherServlet”,错误信息如下图:
这里写图片描述
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

很明显的第一反应就是没有SpringMVC的包,于是检查pom.xml,发现没有问题,spring web mvc包是正确引入了的,查看Maven Dependencies,发现也是正常的,打开jar包,也没有问题,web.xml配置也没有问题…

我去,难道jar包版本问题,于是部署了更高版本的jar包,并且还试过配置更高的JDK版本,依然报错,不能启动…

于是google,发现大部分人都是说没有导入jar包,没有部署成功,可是jar包我导入了,也配置正确了。

就在这时,突然看到有个人说tomcat是否部署成功,于是立刻查看网站部署的文件夹,发现WEB-INF下根本没有lib文件夹…

原因找到了,但是为什么没有正确的部署呢,突然想到有个叫“Deployment Assembly”的配置,马上打开项目属性,找到该栏配置,果不其然,Maven Dependencies果然没有配置到WEB-INF/lib下,于是立刻配置,如下步骤:

在项目上右键properties(应该是最后一项),打开如下界面

Add -> Java Build Path Entries -> Next -> Maven Dependencies -> Finish -> Ok,配置完后如下图:


这里写图片描述
完成后再次启动tomcat,Perfect,就搞定了!
本文转载自: Maven构建SpringMVC环境报错“java.lang.ClassNotFoundException: org.springframework.web.servlet. DispatcherSe

PS:的确是这样的,因为对比正常项目之后就会发现,的确是少了那一项

javax.servlet.ServletException:类 [org.glassfish.jersey.servlet.ServletContainer] 不是 Servlet

javax.servlet.ServletException:类 [org.glassfish.jersey.servlet.ServletContainer] 不是 Servlet

如何解决javax.servlet.ServletException:类 [org.glassfish.jersey.servlet.ServletContainer] 不是 Servlet

您可能会觉得这是一个重复的问题,但没有一个具有相同标题的问题能解决我的问题。我正在使用 Jersey 3.0 在 Eclipse 中创建一个 RESTful Web 服务,我使用 Tomcat 9.0 作为我的服务器。

解决方法

Jersey 3.x 使用 Servlet 5.0,现在使用 Jakarta 命名。所有 javax.servlet 包装现在都已更改为 jakarta.servlet。泽西岛 ServletContainer 现在扩展 jakarta.servlet.http.HttpServlet;它不再是 javax。第一个使用 Jakarta 的 Tomcat 是 Tomcat 10.x; Tomcat 9.x 仍然使用 javax.servlet 包装。所以如果你想使用 Jersey 3.x,那么你应该将你的 Tomcat 升级到 10.x。

maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter

maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter

使用 maven 将项目部署到 tomcat 容器,启动的时候报如下错误:

 

解决 Setting property''source'' to ''org.eclipse.jst.jee.server 的问题

http://blog.csdn.net/z69183787/article/details/19911935

[java] view plain copy

  1. 严重: Exception starting filter charsetFilter  
  2. java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter  
  3.     at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)  
  4.     at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)  
  5.     at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)  
  6.     at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)  
  7.     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)  
  8.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)  
  9.     at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)  
  10.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)  
  11.     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)  
  12.     at org.apache.catalina.startup.Embedded.start(Embedded.java:825)  
  13.     at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)  
  14.     at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)  
  15.     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)  
  16.     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)  
  17.     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)  
  18.     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)  
  19.     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)  
  20.     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)  
  21.     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)  
  22.     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)  
  23.     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)  
  24.     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)  
  25.     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)  
  26.     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)  
  27.     at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)  
  28.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  29.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
  30.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
  31.     at java.lang.reflect.Method.invoke(Method.java:483)  
  32.     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)  
  33.     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)  
  34.     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)  
  35.     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)  
  36.   
  37. 五月 29, 2015 11:01:46 上午 org.apache.catalina.core.StandardContext filterStart  
  38. 严重: Exception starting filter springSecurityFilterChain  
  39. java.lang.ClassCastException: org.springframework.web.filter.DelegatingFilterProxy cannot be cast to javax.servlet.Filter  
  40.     at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)  
  41.     at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)  
  42.     at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)  
  43.     at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)  
  44.     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)  
  45.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)  
  46.     at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)  
  47.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)  
  48.     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)  
  49.     at org.apache.catalina.startup.Embedded.start(Embedded.java:825)  
  50.     at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)  
  51.     at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)  
  52.     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)  
  53.     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)  
  54.     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)  
  55.     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)  
  56.     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)  
  57.     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)  
  58.     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)  
  59.     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)  
  60.     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)  
  61.     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)  
  62.     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)  
  63.     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)  
  64.     at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)  
  65.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  66.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
  67.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
  68.     at java.lang.reflect.Method.invoke(Method.java:483)  
  69.     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)  
  70.     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)  
  71.     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)  
  72.     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)  

 

 

pom.xml 文件部分配置如下:

[java] view plain copy

  1. <pre  name="code"><dependencies>  
  2.         <dependency>  
  3.             <groupId>jstl</groupId>  
  4.             <artifactId>jstl</artifactId>  
  5.             <version>1.2</version>  
  6.         </dependency>  
  7.         <dependency>  
  8.             <groupId>javax.servlet</groupId>  
  9.             <artifactId>servlet-api</artifactId>  
  10.             <version>2.5</version>  
  11.             <strong><scope>provided</scope><!-- 此处已经改过,试过还是不行 --></strong>  
  12.         </dependency>  
  13.         <!-- aspectj dependency -->  
  14.         <dependency>  
  15.             <groupId>org.aspectj</groupId>  
  16.             <artifactId>aspectjrt</artifactId>  
  17.             <version>1.6.11</version>  
  18.         </dependency>  
  19.         <dependency>  
  20.             <groupId>org.aspectj</groupId>  
  21.             <artifactId>aspectjweaver</artifactId>  
  22.             <version>1.6.11</version>  
  23.         </dependency>  
  24.         <!-- Data Source -->  
  25.         <dependency>  
  26.             <groupId>org.apache.commons</groupId>  
  27.             <artifactId>commons-dbcp2</artifactId>  
  28.             <version>2.0</version>  
  29.         </dependency>  
  30.         <dependency>  
  31.             <groupId>commons-pool</groupId>  
  32.             <artifactId>commons-pool</artifactId>  
  33.             <version>1.5.7</version>  
  34.             <scope>runtime</scope>  
  35.         </dependency>  
  36.         <!-- javax  -->  
  37.         <dependency>  
  38.             <groupId>javax</groupId>  
  39.             <artifactId>javaee-api</artifactId>  
  40.             <version>7.0</version>  
  41.             <scope>provided</scope> <!-- 问题出在这里 -->  
  42.         </dependency>  
  43.     </dependencies>  

 

 

 

 

 


web.xml 文件部分配置如下:

[html] view plain copy

  1. <servlet>  
  2.     <servlet-name>springMVC</servlet-name>  
  3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  4.     <load-on-startup>2</load-on-startup>   
  5. </servlet>  

[html] view plain copy

  1. <!-- Configure Charset -->  
  2. <filter>  
  3.     <filter-name>charsetFilter</filter-name>  
  4.       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  5.       <init-param>  
  6.          <param-name>encoding</param-name>  
  7.          <param-value>UTF-8</param-value>  
  8.       </init-param>  
  9.       <init-param>  
  10.            <param-name>forceEncoding</param-name>  
  11.            <param-value>true</param-value>  
  12.      </init-param>   
  13.  </filter>  


纠结了一天,网上说是 jar 包冲突:

“tomcat 启动后先将 tomcat/lib 目录下的 jar 包全部读入内存,如果 webapps 目录里的应用程序中 WEB-INF/lib 目录下有相同的包,将无法加载,

不同版本的包之间也会造成类似问题。

解决这个问题的方法就是对于 servlet-ap.jar 使用 <scope> 标签,编译的时候用到 servlet-api 和 jsp-api,但在打包的时候不用这两个依赖

如下”

 

[html] view plain copy

  1. <dependency>  
  2.      <groupId>javax.servlet</groupId>  
  3.      <artifactId>servlet-api</artifactId>  
  4.      <version>2.4</version>  
  5.      <scope>provided</scope>  
  6. </dependency>  

 

 


后来在网上看到一篇文章(http://stackoverflow.com/questions/15715864/opensessioninviewfilter-cannot-be-cast-to-javax-servlet-filter),终于找到问题。

 

如下测试代码,能告诉你 class 文件是从哪个 jar 包中加载的

[java] view plain copy

  1. @Test  
  2. public void get(){  
  3.     URL url = Filter.class.getProtectionDomain().getCodeSource().getLocation();  
  4.     System.out.println("path:"+url.getPath()+"  name:"+url.getFile());  

import java.net.URL;

import javax.servlet.Filter;

import org.junit.Test;

public class d {
    @Test
    public void testget(){  
        URL url = Filter.class.getProtectionDomain().getCodeSource().getLocation();  
        System.out.println("path:"+url.getPath()+"  name:"+url.getFile()); 
    }

}
 

 

  1. // 输出结果:path:/C:/Users/User/.m2/repository/javax/javaee-api/7.0/javaee-api-7.0.jar  name:/C:/Users/User/.m2/repository/javax/javaee-api/7.0/javaee-api-7.0.jar  

 

我们实际项目中用到了 javaee 的 api,javaee-api-7.0.jar 文件中也有 Filter,所以 在引用 javaee-api 依赖的时候,pom.xml 文件中对应的加上 “<scope>provided</scope>” 就可以了

 

(说明:

测试的时候,需要将 pom.xml 文件中

[html] view plain copy

  1. <!--   

[html] view plain copy

  1. <dependency>  
  2.     <groupId>javax.servlet</groupId>  
  3.     <artifactId>servlet-api</artifactId>  
  4.     <version>2.5</version>  
  5.     <scope>provided</scope>  
  6. </dependency>  

[html] view plain copy

  1. -->  

org.springframework.boot.test.autoconfigure.web.servlet.MockMvcBuilderCustomizer的实例源码

org.springframework.boot.test.autoconfigure.web.servlet.MockMvcBuilderCustomizer的实例源码

项目:sagan    文件:IntegrationTestsConfig.java   
@Bean
public mockmvcBuilderCustomizer mockmvcBuilderCustomizer(Listablebeanfactory beanfactory) {
    Filter springSecurityFilterChain = beanfactory.getBean("springSecurityFilterChain",Filter.class);
    return builder -> builder.addFilters(springSecurityFilterChain)
            .defaultRequest(get("/").with(csrf()).with(user(123L).roles("ADMIN")))
            .build();

}

关于org.springframework.test.web.servlet.result.MockMvcResultMatchers的实例源码看透springmvc源代码分析与实践的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet、javax.servlet.ServletException:类 [org.glassfish.jersey.servlet.ServletContainer] 不是 Servlet、maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter、org.springframework.boot.test.autoconfigure.web.servlet.MockMvcBuilderCustomizer的实例源码等相关内容,可以在本站寻找。

本文标签: