当前位置: 首页 > 知识库问答 >
问题:

雄猫-新泽西-霸气。Json没有生成

孔冥夜
2023-03-14

我想为使用泽西岛开发的 ReST 服务生成 Swagger API 文档。

我已经浏览了 Swagger API 文档,并根据文档进行了部署。

但是当我访问URL(http://localhost:8080/MySwagger/swagger.json)时,我会得到以下输出。

{

"swagger" : "2.0",

  "info" : 
   {

    "version" : "1.0.2",

    "title" : "UUK"
  },

  "host" : "localhost:8080",

  "basePath" : "/MySwagger",

  "schemes" : [ "http" ]

}

上面那个不包含我们开发的API

我尝试了文档中提到的各种选项,但结果是相同的。

我已经在 tomcat 7.0.68 中部署了该应用程序。

我的Java版本是7

我使用 maven 下载了依赖项 Jars 并手动将 Jars 复制到 /WEB-INF/lib 目录

mvn dependency:get -DgroupId=io.swagger -DartifactId=swagger-jersey2-jaxrs -Dversion=1.5.7
<?xml version="1.0" encoding="UTF-8"?>
<web-app>


    <servlet>
        <servlet-name>jersey</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

        <init-param>
            <param-name>jersey.config.server.provider.classnames</param-name>
            <param-value>
                io.swagger.jaxrs.listing.ApiListingResource,
                io.swagger.jaxrs.listing.SwaggerSerializers,
                test.EventReceiver
            </param-value>
        </init-param>       

        <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet>
        <servlet-name>SwaggerBootstrap</servlet-name>
        <servlet-class>test.bootstrap.SwaggerApplication</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>  

    <servlet-mapping>
        <servlet-name>jersey</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>
import io.swagger.jaxrs.config.BeanConfig;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class SwaggerApplication extends HttpServlet
{
    private static final long serialVersionUID = 1L;

    @Override
    public void init(ServletConfig config) throws ServletException 
    {
    super.init(config);

    BeanConfig beanConfig = new BeanConfig();
    beanConfig.setVersion("1.0.2");
    beanConfig.setSchemes(new String[]{"http"});
    beanConfig.setHost("localhost:8080");
    beanConfig.setBasePath(config.getServletContext().getContextPath());
    beanConfig.setTitle("UUK");
    beanConfig.setResourcePackage("io.swagger.resources");
    beanConfig.setScan(true);
    beanConfig.setPrettyPrint(true);
    }
}
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;

import javax.ws.rs.Consumes;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path(value="/v1/")
@Api(value="inboundtransaction" ,description = "Receive Inbound transaction", position = 1, protocols = "http")

public class EventReceiver 
{
    @POST
    @Path(value="/inboundtransaction")
    @Produces({ MediaType.APPLICATION_JSON })
    @Consumes({ MediaType.APPLICATION_JSON })

    @ApiOperation(value="Receiving Inbound transaction from X", notes = "Must Contain ID",httpMethod = "POST",response=String.class)
    @ApiResponses(value = 
    { 
              @ApiResponse(code = 201, message = "Received request and process later", response=String.class),
              @ApiResponse(code = 400, message = "Server Busy. Please re-send later", response=String.class) 
    }
    )

    public String inboundtransaction(
            @ApiParam(value = "Pass mandatory values to create EdiAddress",required = true) String data
            ) 
    {
        return "Success";
    }
}

请让我知道当前设置中的问题是什么。

问候

乌达亚

共有1个答案

燕砚文
2023-03-14

您需要包含您的包,它是一个用逗号分隔的包的字符串。

beanConfig.setResourcePackage(“io.swagger.resources”);

 类似资料:
  • 下面的代码有效 下面的代码是抛出错误 低于异常 [[FATAL]找不到public javax类型参数的注入源。ws。rs.core。回复com。特里姆布尔。帕斯。大声点。metricscollector。资源MetricsResource。索引1处的PostMetricData(java.lang.String,java.lang.String)。;source='ResourceMethod{

  • 我正在尝试使用JAX-RS(Jersey)构建JSON RESTful Webservice。我也在使用Maven构建应用程序。 我的第一个方法是 pom之后。xml- 所以我补充道 到我的pom文件。其他lib文件(例如jackson-cors-asl-1.7.1.jar、jackson-jaxrs-1.7.1.jar、jaxb impl,…)也可以在生成的war文件中找到//编辑:它还下载st

  • 问题内容: 我设置了一个Eclipse WebApp项目,并将Jersey和Jackson JAR放在WEB-INF / lib目录中。我想使用JSON序列化,但无法解决此错误: 在 WEB-INF / lib目录 文件夹包含以下JAR: web.xml : Greeting.java : WebApp项目在嵌入式Tomcat v7服务器中运行(在eclipse中查看“服务器”)。 要求 : 只要

  • 我在解析JSON到日期对象时遇到一个问题。

  • 我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?

  • 我正在泽西岛应用程序中使用 CDI。在根资源上,CDI 注入按预期工作,但每当我返回子资源时,CDI 注入源都不可用。 具有子资源定位器的根资源: 子资源: 错误: 我正在使用和Weld依赖项,在Undertow上运行,并将Weld servlet侦听器添加到部署中。 同样,对根资源的相同注入确实有效。< code>@Named("name ")字符串由< code>@ApplicationSco