gpt4 book ai didi

java - 在 Jhipster 中添加新服务时出现代码错误 500

转载 作者:行者123 更新时间:2023-12-02 12:48:21 24 4
gpt4 key购买 nike

我正在开发 Jhipster 应用程序,并尝试添加新服务。此服务应返回对象“Request”列表(具有属性id(长整型)、内容(字符串)。

我想通过内容@PathVariable搜索请求。我正在使用 Spring 框架。

这是RequestResource.java方法。

@GetMapping(value = "/requests/{content}")
@Timed
public ResponseEntity<List<Request>> searchForRequest(@PathVariable String content) {
log.debug("REST request to get Request : {}", content);
List<Request> requestsFounded = searchService.searchRequests(content);
return ResponseUtil.wrapOrNotFound(Optional.ofNullable(requestsFounded));
}

这是SearchService.java方法。

private RequestRepository requestRepository;

@Transactional(readOnly = true)
public List<Request> searchRequests(String content){
log.debug("REST requests to search for requests based on content given input");
List<Request> result = requestRepository.findAllByContent(content);
return result;
}

最后这是RequestRepository.java

@SuppressWarnings("unused")
public interface RequestRepository extends JpaRepository<Request,Long> {

List<Request> findAllByContent(String content);

}

我做错了什么?

编辑:

java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path 'http://localhost:8080/api/requests/ciao': {public org.springframework.http.ResponseEntity it.mobimentum.businessrequest.web.rest.RequestResource.searchForRequest(java.lang.String), public org.springframework.http.ResponseEntity it.mobimentum.businessrequest.web.rest.RequestResource.getRequest(java.lang.Long)}
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:367)
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:314)
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:61)
at org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:352)
at org.springframework.web.servlet.DispatcherServlet.getHandler(DispatcherServlet.java:1160)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:940)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:111)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at it.mobimentum.businessrequest.security.jwt.JWTFilter.doFilter(JWTFilter.java:36)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.SessionRestoringHandler.handleRequest(SessionRestoringHandler.java:119)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:211)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:809)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

2017-06-21 12:05:05.376 WARN 8096 --- [ XNIO-2 task-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved exception caused by Handler execution: java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path 'http://localhost:8080/api/requests/ciao': {public org.springframework.http.ResponseEntity it.mobimentum.businessrequest.web.rest.RequestResource.searchForRequest(java.lang.String), public org.springframework.http.ResponseEntity it.mobimentum.businessrequest.web.rest.RequestResource.getRequest(java.lang.Long)}

编辑2这是RequestResource.java:

package it.mobimentum.businessrequest.web.rest;

import com.codahale.metrics.annotation.Timed;
import it.mobimentum.businessrequest.domain.Request;

import it.mobimentum.businessrequest.repository.RequestRepository;
import it.mobimentum.businessrequest.web.rest.util.HeaderUtil;
import io.github.jhipster.web.util.ResponseUtil;
import it.mobimentum.businessrequest.security.AuthoritiesConstants;
import it.mobimentum.businessrequest.service.SearchService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.net.URI;
import java.net.URISyntaxException;

import java.util.List;
import java.util.Optional;
import javax.inject.Inject;
import org.springframework.security.access.annotation.Secured;

/**
* REST controller for managing Request.
*/
@RestController
@RequestMapping("/api")
public class RequestResource {

private final Logger log = LoggerFactory.getLogger(RequestResource.class);

private static final String ENTITY_NAME = "request";

private final RequestRepository requestRepository;

@Inject
private SearchService searchService;

public RequestResource(RequestRepository requestRepository) {
this.requestRepository = requestRepository;
}

/**
* POST /requests : Create a new request.
*
* @param request the request to create
* @return the ResponseEntity with status 201 (Created) and with body the new request, or with status 400 (Bad Request) if the request has already an ID
* @throws URISyntaxException if the Location URI syntax is incorrect
*/
@PostMapping("/requests")
@Timed
@Secured({AuthoritiesConstants.PRESIDENT, AuthoritiesConstants.ADMIN, AuthoritiesConstants.USER, AuthoritiesConstants.VICE_PRESIDENT})
public ResponseEntity<Request> createRequest(@RequestBody Request request) throws URISyntaxException {
/**
* Imposto la data di creazione al momento attuale, specifico, in cui
* essa viene gestita.
*/
/*CustomUser customUser = new CustomUser();
customUser.setUsername(SecurityUtils.getCurrentUserLogin());
request.setCreationDate(LocalDate.now());
request.setVisible(true);
request.setAuthor(customUser);*/
log.debug("REST request to save Request : {}", request);
if (request.getId() != null) {
return ResponseEntity.badRequest().headers(HeaderUtil.createFailureAlert(ENTITY_NAME, "idexists", "A new request cannot already have an ID")).body(null);
}
Request result = requestRepository.save(request);
return ResponseEntity.created(new URI("/api/requests/" + result.getId()))
.headers(HeaderUtil.createEntityCreationAlert(ENTITY_NAME, result.getId().toString()))
.body(result);
}

/**
* PUT /requests : Updates an existing request.
*
* @param request the request to update
* @return the ResponseEntity with status 200 (OK) and with body the updated request,
* or with status 400 (Bad Request) if the request is not valid,
* or with status 500 (Internal Server Error) if the request couldn't be updated
* @throws URISyntaxException if the Location URI syntax is incorrect
*/
@PutMapping("/requests")
@Timed
@Secured({AuthoritiesConstants.PRESIDENT, AuthoritiesConstants.ADMIN, AuthoritiesConstants.VICE_PRESIDENT})
public ResponseEntity<Request> updateRequest(@RequestBody Request request) throws URISyntaxException {
log.debug("REST request to update Request : {}", request);
if (request.getId() == null) {
return createRequest(request);
}
Request result = requestRepository.save(request);
return ResponseEntity.ok()
.headers(HeaderUtil.createEntityUpdateAlert(ENTITY_NAME, request.getId().toString()))
.body(result);
}

/**
* GET /requests : get all the requests.
*
* @return the ResponseEntity with status 200 (OK) and the list of requests in body
*/
@GetMapping("/requests")
@Timed
@Secured({AuthoritiesConstants.PRESIDENT, AuthoritiesConstants.ADMIN, AuthoritiesConstants.USER, AuthoritiesConstants.VICE_PRESIDENT})
public List<Request> getAllRequests() {
log.debug("REST request to get all Requests");
return requestRepository.findAll();
}

/**
* GET /requests/:id : get the "id" request.
*
* @param content the content of the request to retrieve
* @return the ResponseEntity with status 200 (OK) and with body the request, or with status 404 (Not Found)
*/

@GetMapping("/search/{content}")
@Timed
public ResponseEntity<List<Request>> searchForRequest(@PathVariable String content) {
log.debug("REST request to get Request : {}", content);
List<Request> requestsFounded = searchService.searchRequests(content);
return ResponseUtil.wrapOrNotFound(Optional.ofNullable(requestsFounded));
}

/**
* GET /requests/:id : get the "id" request.
*
* @param id the id of the request to retrieve
* @return the ResponseEntity with status 200 (OK) and with body the request, or with status 404 (Not Found)
*/
@GetMapping("/requests/{id}")
@Timed
public ResponseEntity<Request> getRequest(@PathVariable Long id) {
log.debug("REST request to get Request : {}", id);
Request request = requestRepository.findOne(id);
return ResponseUtil.wrapOrNotFound(Optional.ofNullable(request));
}

/**
* DELETE /requests/:id : delete the "id" request.
*
* @param id the id of the request to delete
* @return the ResponseEntity with status 200 (OK)
*/
@DeleteMapping("/requests/{id}")
@Timed
@Secured({AuthoritiesConstants.PRESIDENT, AuthoritiesConstants.ADMIN, AuthoritiesConstants.VICE_PRESIDENT})
public ResponseEntity<Void> deleteRequest(@PathVariable Long id) {
log.debug("REST request to delete Request : {}", id);
requestRepository.delete(id);
return ResponseEntity.ok().headers(HeaderUtil.createEntityDeletionAlert(ENTITY_NAME, id.toString())).build();
}

}

最佳答案

2017-06-21 12:05:05.376  WARN 8096 --- [  XNIO-2 task-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved exception caused by Handler execution: java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path 'http://localhost:8080/api/requests/ciao': {public org.springframework.http.ResponseEntity it.mobimentum.businessrequest.web.rest.RequestResource.searchForRequest(java.lang.String), public org.springframework.http.ResponseEntity it.mobimentum.businessrequest.web.rest.RequestResource.getRequest(java.lang.Long)}

此日志意味着您有另一个 GET 方法映射到 uri:/requests/{something} 并且 Spring 无法检测到您尝试调用哪个方法。

您可以将这两个方法中的一个的注释@GetMapping的值更改为与另一个不同,然后它就会起作用。

关于java - 在 Jhipster 中添加新服务时出现代码错误 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44672546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com