我在eclipse中初始化了一个SpringBoot Rest,并使其成为一个动态Web项目。遵循了三轮胎原则,并在控制器类中声明了endpointURL。项目部署良好,但一旦我尝试访问返回404错误的endpoint。请参阅下面的示例。二手编译器-Maven和服务器-apache tomcat 9.0
主类.java
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
@SpringBootApplication
@Configuration
public class PmsAdvanced extends SpringBootServletInitializer implements
WebMvcConfigurer{
public static void main(String[] args) {
SpringApplication.run(PmsAdvanced.class, args);
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("/index.jsp");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
}
}
示例控制器类
@RestController
@EnableWebMvc
@RequestMapping("/test")
public class PmsAdvancedController implements WebMvcConfigurer {
@PostMapping("/PMS")
public String sayHello(@RequestParam(value = "myName", defaultValue = "divi") String name) {
return String.format("Hello %s!", name);
}
@GetMapping("/PMSA")
public String sayAge(@RequestParam(value = "age", defaultValue = "100") String age) {
return String.format("I'm %s!", age);
}}
如果您将某个类注释为< code>@Configuration,那么您就是在告诉spring这个类是< code>@Beans的一个源。因此,不应在同一个类中包含< code > @ request mapping /< code > @ rest controller /< code > @ get mapping 。将这些项目的相关部分分离到另一个类中。
我也很确定对于你的设置,你不需要重复添加@EnableAutoConfiguration
,并且可能只需要它(如果有的话)在根@SpringBootApplication
注释旁边(也可能在任何@SpringBootTest
旁边,但不要引用我的话)。如果你摆脱它们并阅读你得到的任何异常,你应该处于更好的位置来让它工作。
在MVC风格的应用程序中(不考虑语言),典型的命名约定是所有请求都由名为“BlahBlah”的类处理...控制器”,处理传入的HTTP请求。
所以总而言之,为了让它工作,我会从以下几点开始:
编辑:
如果您将以下内容放入一个Java文件并运行main
方法,它就可以工作:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@SpringBootApplication
public class PmsAdvanced extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(PmsAdvanced.class, args);
}
}
@Configuration
class PmsAdvancedConfiguration implements WebMvcConfigurer {
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("/index.jsp");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
}
}
@RestController
@RequestMapping("/test")
class PmsAdvancedController {
@PostMapping("/PMS")
public String sayHello(@RequestParam(value = "myName", defaultValue = "divi") String name) {
return String.format("Hello %s!", name);
}
@GetMapping("/PMSA")
public String sayAge(@RequestParam(value = "age", defaultValue = "100") String age) {
return String.format("I'm %s!", age);
}
}
测试:
curl -X GET http://localhost:8080/test/PMSA?age=30
或在浏览器中访问:http://localhost:8080/test/PMSA?age=30
输出:
I'm 30!
注意:我实际上不是30岁。
我是个彻头彻尾的Jenkins noob,所以如果我错过了一些显而易见的事情,我会提前道歉! 我正在使用Visual Studio 2010构建一个intranet web应用程序,并使用AnkhSVN将更改提交到存储在运行Visual SVN server的服务器上的存储库中。 由于预算限制,该服务器还充当我们的web服务器,并运行Jenkins。它连接到我们的内部网络,但没有外部互联网接入,所
我正在尝试访问。我已经使用ebconfig将json文件下载到/tmp/目录,以在S3上存储私钥。 但它给了我以下错误 错误:EACCES:权限被拒绝,打开“/tmp/firebaseadminsdk”。json’ 文件中有一段说 第二个条目使用S3Auth身份验证方法从指定的URL下载私钥,并将其保存到/etc/pki/tls/certs/server。钥匙然后,代理服务器可以从此位置读取私钥,
更新日期:2020年2月20日 总结 Azure 开发运营管道生成无法从“项目”下的专用源中找到 NuGet 包。 我们的 Azure DevOps 环境 在Azure,我们有自己的公司“空间”:dev.azure.com/OurCompany 在此之下,我们有多个项目,例如,想象一下这三个项目: 绿色:包含特定类型的应用程序 蓝色:这包含不同类型的应用程序 红色:这包含我们的“通用”帮助程序代码
我在基本项目中导入了一个项目作为库,但我无法访问基本项目中导入库中的类文件。请原谅我的问题是愚蠢的,我是比较新的android工作室步骤我做的- null Build.Gradle(:App)(主项目) Build.Gradle(:TF_Lite)(作为库导入的项目)
问题内容: 我有一个像这样的json块: 我如何获取此令牌包含的所有关键项目。例如,从上面的代码中,我希望具有“ ADRESS_LOCATION”,“ LOCATION”,“ FLOOR_NUMBER”和“ self”。 问题答案: 您可以将转换为,然后使用方法获取对象属性的列表。从那里,您可以轻松获得名称。 像这样: 输出:
我在我的android studio项目中遇到以下错误: 依赖项{compile fileTree(目录:“libs”,include:['*.jar'])androidTestCompile(“com.android.support.test.espresso:espresso-core:2.2.2”,{exclude组:“com.android.support”,module:“support