Java Dropwizard Jersey设置URL模式打破招摇404?
不久前,我在Dropwizard服务中添加了swagger,效果很好 然而,现在我想添加一个简单的html页面,并配置资源路径以提供来自Java Dropwizard Jersey设置URL模式打破招摇404?,java,jersey,dropwizard,Java,Jersey,Dropwizard,不久前,我在Dropwizard服务中添加了swagger,效果很好 然而,现在我想添加一个简单的html页面,并配置资源路径以提供来自/assets的内容,这已经打破了swagger和api 带有404响应 这是我的密码 public class NumericodeApplication extends Application<NumericodeConfiguration> { public static void main(final String[] args)
/assets
的内容,这已经打破了swagger和api
带有404
响应
这是我的密码
public class NumericodeApplication extends Application<NumericodeConfiguration> {
public static void main(final String[] args) throws Exception {
new NumericodeApplication().run(args);
}
@Override
public String getName() {
return "Numericode";
}
@Override
public void initialize(final Bootstrap<NumericodeConfiguration> bootstrap) {
bootstrap.addBundle(new SwaggerBundle<NumericodeConfiguration>() {
@Override
protected SwaggerBundleConfiguration getSwaggerBundleConfiguration(NumericodeConfiguration configuration) {
return configuration.swaggerBundleConfiguration;
}
});
bootstrap.addBundle(new AssetsBundle("/assets", "/", "index.html")); //added this
}
@Override
public void run(final NumericodeConfiguration configuration, final Environment environment) {
environment.jersey().register(new Controller());
environment.jersey().setUrlPattern("/swagger"); //tried this
environment.jersey().setUrlPattern("/api/*"); //added this
}
}
公共类NumericodeApplication扩展应用程序{
公共静态void main(最终字符串[]args)引发异常{
新建NumericodeApplication().run(args);
}
@凌驾
公共字符串getName(){
返回“数字代码”;
}
@凌驾
公共无效初始化(最终引导引导引导){
addBundle(新的SwaggerBundle(){
@凌驾
受保护的SwaggerBundleConfiguration getSwaggerBundleConfiguration(NumericDeconfiguration配置){
返回配置.swaggerBundleConfiguration;
}
});
addBundle(新的AssetsBundle(“/assets”、“/”、“index.html”);//添加了这个
}
@凌驾
公共无效运行(最终数字配置配置,最终环境){
environment.jersey().register(新控制器());
environment.jersey().setUrlPattern(“/swagger”);//尝试了以下操作
environment.jersey().setUrlPattern(“/api/*”);//添加了此
}
}
当我尝试删除两个setUrlPattern()方法调用时,它会抱怨
多个servlet映射到path/*:assets[mapped:JAVAX_API:null],io.dropwizard.jersey.setup.JerseyServletContainer-2e5b7fba[mapped:EMBEDDED:null]
但是,如果我删除了资产包,Swagger还能正常工作吗
如何让我的索引页和swagger在Dropwizard/Jetty上工作
如果你能解释发生了什么,就可以获得额外的积分
您的应用程序或静态资产都可以从
根路径,但不是两者都有。后者在使用Dropwizard
返回Javascript应用程序。要启用它,请将应用程序移动到
子URL
资料来源:
bootstrap.addBundle(新的AssetsBundle(“/assets”、“/”、“index.html”)代码>
此行试图装载根目录下资源目录下的资源
上下文路径中的资源。可能Jersey应用程序已经安装在那里了
您的应用程序或静态资产都可以从
根路径,但不是两者都有。后者在使用Dropwizard
返回Javascript应用程序。要启用它,请将应用程序移动到
子URL
资料来源:
bootstrap.addBundle(新的AssetsBundle(“/assets”、“/”、“index.html”)代码>
此行试图装载根目录下资源目录下的资源
上下文路径中的资源。可能Jersey应用程序已经安装在那里了。您可以在配置文件中添加uriPrefix,如下所示
swagger:
title: Test Application
resourcePackage: com.abc.xyz
uriPrefix: /api/v1
这将以/api/v1作为基本url您可以在配置文件中添加uriPrefix,如下所示
swagger:
title: Test Application
resourcePackage: com.abc.xyz
uriPrefix: /api/v1
这将以/api/v1作为基本url