【发布时间】:2023-03-29 00:15:01
【问题描述】:
我的 Spring 服务器工作正常(显示 googlemap 的简单站点)。但是当我想添加一个 crudrepository(当然还有一个 @Entity)时,应用程序找不到与之前工作相同的 URI。我该如何解决这个问题?
一段系统输出:
16:32:29.737 [690530332@qtp-1564826387-0] 调试 o.s.b.f.s.DefaultListableBeanFactory - 完成创建 bean 'org.springframework.web.servlet.support.SessionFlashMapManager' 的实例 16:32:29.737 [690530332@qtp-1564826387-0] 调试 os.web.servlet.DispatcherServlet - 无法找到名为“flashMapManager”的 FlashMapManager:使用默认值 [org.springframework.web.servlet.support.SessionFlashMapManager@186fc102] 16:32:29.738 [690530332@qtp-1564826387-0] 调试 o.s.b.f.s.DefaultListableBeanFactory - 返回单例 bean 'serverProperties' 的缓存实例 16:32:29.739 [690530332@qtp-1564826387-0] 调试 o.s.b.f.s.DefaultListableBeanFactory - 返回单例 bean 'managementServerProperties' 的缓存实例 16:32:29.739 [690530332@qtp-1564826387-0] 调试 o.s.c.e.PropertySourcesPropertyResolver - 在 [servletConfigInitParams] 中搜索键“spring.liveBeansView.mbeanDomain” 16:32:29.739 [690530332@qtp-1564826387-0] 调试 o.s.c.e.PropertySourcesPropertyResolver - 在 [servletContextInitParams] 中搜索键“spring.liveBeansView.mbeanDomain” 16:32:29.739 [690530332@qtp-1564826387-0] 调试 o.s.c.e.PropertySourcesPropertyResolver - 在 [servletContextInitParams] 中找到键“spring.liveBeansView.mbeanDomain”,类型为 [String],值为“dev” 16:32:29.751 [690530332@qtp-1564826387-0] 调试 os.web.servlet.DispatcherServlet - 将 servlet 'sample' 的 WebApplicationContext 发布为名称为 [org.springframework.web.servlet.FrameworkServlet.CONTEXT.sample] 的 ServletContext 属性 16:32:29.751 [690530332@qtp-1564826387-0] 信息 os.web.servlet.DispatcherServlet - FrameworkServlet“样本”:初始化在 7745 毫秒内完成 16:32:29.751 [690530332@qtp-1564826387-0] 调试 os.web.servlet.DispatcherServlet - Servlet 'sample' 配置成功 16:32:29.757 [690530332@qtp-1564826387-0] 调试 os.web.servlet.DispatcherServlet - 名为“sample”的 DispatcherServlet 处理 [/mapa/hello] 的 GET 请求 16:32:29.759 [690530332@qtp-1564826387-0] 调试 o.s.w.s.m.m.a.RequestMappingHandlerMapping - 查找路径 /hello 的处理程序方法 16:32:29.761 [690530332@qtp-1564826387-0] 调试 o.s.w.s.m.m.a.RequestMappingHandlerMapping - 没有找到 [/hello] 的处理程序方法 16:32:29.761 [690530332@qtp-1564826387-0] 调试 o.s.b.a.e.mvc.EndpointHandlerMapping - 查找路径 /hello 的处理程序方法 16:32:29.762 [690530332@qtp-1564826387-0] 调试 o.s.b.a.e.mvc.EndpointHandlerMapping - 没有找到 [/hello] 的处理程序方法 16:32:29.762 [690530332@qtp-1564826387-0] 警告 o.s.web.servlet.PageNotFound - 在 DispatcherServlet 中找不到带有 URI [/mapa/hello] 的 HTTP 请求的映射,名称为“sample” 16:32:29.772 [690530332@qtp-1564826387-0] 调试 os.web.servlet.DispatcherServlet - 成功完成请求
Application.java
@EnableAutoConfiguration
@EntityScan(basePackageClasses=palmaslab.mapas.repository.PostoSaude.class)
@EnableJpaRepositories(basePackageClasses =palmaslab.mapas.repository.PostoSaudeRepository.class/*.PostoSaudeRepository.class*/)
@EnableWebMvc
@Configuration
@ComponentScan(basePackages="palmaslab.mapas.controller")
public class Application {
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/view/");
resolver.setSuffix(".jsp");
return resolver;
}
@Bean
public MultipartConfigElement multipartConfigElement() {
MultiPartConfigFactory factory = new MultiPartConfigFactory();
factory.setMaxFileSize("256KB");
factory.setMaxRequestSize("256KB");
return factory.createMultipartConfig();
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我的控制器
@Controller
public class myController {
@Autowired
private PostoSaudeRepository PostosSaude;
//get postos!!
@RequestMapping("hello")
public ModelAndView showMessage(
@RequestParam(value = "name", required = false, defaultValue = "World") String name) {
ModelAndView mv = new ModelAndView("mapa");
// mv.addObject("postossaude", PostosSaude.findAll());
return mv;
}}
PostoSaudeRepository
public interface PostoSaudeRepository extends CrudRepository<PostoSaude,Long> {
public PostoSaude findById(long id);
}
PostoSaude(实体)
@Entity
public class PostoSaude {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
private String nome_posto_saude;
private double latitude;
private double longitude;
private String endereco;
private String barrio_ou_nome_municipio; //aqui se coloca o nome do municipio, por exemplo Caucaia, o String cidade nesse caso ficará vazio ""
private String cidade;
private String estado;
private String pais;
public PostoSaude()
{}
public PostoSaude(String nome_posto_saude, String endereco,String barrio_ou_nome_municipio,String cidade, String estado, String pais)
{
this.nome_posto_saude = nome_posto_saude;
this.endereco = endereco;
this.barrio_ou_nome_municipio = barrio_ou_nome_municipio;
this.cidade = cidade;
this.estado = estado;
this.pais = pais;
}
public String getBarrio_ou_nome_municipio() {
return barrio_ou_nome_municipio;
}
public void setBarrio_ou_nome_municipio(String barrio_ou_nome_municipio) {
this.barrio_ou_nome_municipio = barrio_ou_nome_municipio;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getPais() {
return pais;
}
public void setPais(String pais) {
this.pais = pais;
}
public String getNome_posto_saude() {
return nome_posto_saude;
}
public void setNome_posto_saude(String nome_posto_saude) {
this.nome_posto_saude = nome_posto_saude;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double d) {
this.latitude = d;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double d) {
this.longitude = d;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public long getId() {
return id;
}
@Override
public int hashCode() {
// Google Guava provides great utilities for hashing
return Objects.hashCode(nome_posto_saude, endereco, cidade);
}
@Override
public boolean equals(Object obj) {
if (obj instanceof PostoSaude) {
PostoSaude other = (PostoSaude) obj;
// Google Guava provides great utilities for equals too!
return Objects.equal(nome_posto_saude, other.nome_posto_saude)
&& Objects.equal(endereco, other.endereco)
&& cidade == other.cidade;
} else {
return false;
}
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web- app_2_5.xsd">
<servlet>
<servlet-name>sample</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value> org.springframework.web.context.support.AnnotationConfigWebApplicationContext </param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>palmaslab.mapas.config</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>sample</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>dev</param-value>
</context-param>
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>dev</param-value>
</context-param>
<context-param>
<param-name>spring.liveBeansView.mbeanDomain</param-name>
<param-value>dev</param-value>
</context-param>
</web-app>
【问题讨论】:
-
请阅读this 并编辑您的问题。
-
好的,抱歉。任何人都可以帮助我吗?谢谢大家
标签: java spring jsp spring-mvc jpa