我正在用io.swagger生成器和给定的yaml文件创建rest客户端,yaml定义了一个响应元素,生成生成器创建的Response.class。问题是,在另一个生成的DefaultApi类中,导入包括这个类和一个不被使用但在两个导入之间产生冲突的javax.ws.rs.core.Response。如果我在yaml文件中重命名响应元素,问题就会消失,但实际上我不会更改这个文件。是否有方法向生成器指示使用另一个名称(别名)创建类?我训练的是不要更改de yaml文件。
pom.xml
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<scope>compile</scope>
<version>${swagger-core-version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-client</artifactId>
<version>${cxf-version}</version>
<scope>compile</scope>
</dependency>..。
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>${swagger-codegen-maven-plugin.version}</version>
<configuration>
<generateApiTests>false</generateApiTests>
<generateModelTests>false</generateModelTests>
<!-- <language>java</language> -->
<language>jaxrs-cxf-client</language>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/technicalViability.yaml</inputSpec>
<!-- <supportingFilesToGenerate>ApiCallback.java,ApiClient.java,ApiException.java,ApiResponse.java,Configuration.java,Pair.java,ProgressRequestBody.java,ProgressResponseBody.java,StringUtil.java,ApiKeyAuth.java,Authentication.java,HttpBasicAuth.java,JSON.java,OAuth.java</supportingFilesToGenerate> -->
<configOptions>
<sourceFolder>src/</sourceFolder>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>..。
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<versionRange>${swagger-codegen-maven-plugin.version}</versionRange>
<goals>
<goal>generate</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>technicalViability.yml
paths:
/technicalViability:
get:
produces:
- application/xml
- application/json
parameters:
- name: "tlkServiceId"
in: "query"
description: "Servicio TLK"
required: false
type: "string"
- name: "tincoServiceId"
in: "query"
description: "Servicio Tinco"
required: false
type: "string"
responses:
"200":
description: "OK"
schema:
$ref: "#/definitions/response"
security:
- sso_auth: []
securityDefinitions:
sso_auth:
type: "oauth2"
flow: accessCode
authorizationUrl: "--"
tokenUrl: "--"
definitions:
response:
type: "object"
properties:
code:
type: "integer"
description: "codigo de respuesta"
message:
type: "string"
description: "mensaje descriptivo"
listaFacilidades:
type: "array"
items:
$ref: "#/definitions/facilidad"
facilidad:
type: "object"
properties:
wp_cod_sefp:
type: "string"
description: "codigo psef"
wp_tipo_sefp:
type: "string"
description: "tipo de psef"DefaultApi.class
package io.swagger.api;
import io.swagger.model.Response;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
import javax.ws.rs.*;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.MediaType;
import org.apache.cxf.jaxrs.ext.multipart.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponses;
import io.swagger.annotations.ApiResponse;
import io.swagger.jaxrs.PATCH;
/**
* Technical Viability
*
* <p>No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
*
*/
@Path("/")
@Api(value = "/", description = "")
public interface DefaultApi {
@GET
@Path("/technicalViability")
@Produces({ "application/xml", "application/json" })
@ApiOperation(value = "", tags={ })
@ApiResponses(value = {
@ApiResponse(code = 200, message = "OK", response = Response.class) })
public Response technicalViabilityGet(@QueryParam("tlkServiceId")String tlkServiceId, @QueryParam("tincoServiceId")String tincoServiceId);
}错误:导入javax.ws.rs.core.Response与另一个导入语句发生冲突
发布于 2020-10-21 19:39:28
对于这种情况,您应该选择一个在imports中使用,另一个选择完全限定的类名(包名+类名)来指定要放在哪里。否则,您将面临,导入xxxx.Response与另一个导入语句发生冲突。因此,例如,从导入中删除io.swagger.model.Response,然后:
public io.swagger.model.Response technicalViabilityGet(@QueryParam("tlkServiceId")String tlkServiceId, @QueryParam("tincoServiceId")String tincoServiceId);发布于 2020-10-22 14:25:57
最后,我改变了生成客户端的方式,问题就解决了。
pom.xml
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<scope>compile</scope>
<version>1.5.22</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>logging-interceptor</artifactId>
<version>2.7.5</version>
</dependency>
<dependency>
<groupId>org.threeten</groupId>
<artifactId>threetenbp</artifactId>
<version>1.4.5</version>
</dependency>
<dependency>
<groupId>io.gsonfire</groupId>
<artifactId>gson-fire</artifactId>
<version>1.8.4</version>
</dependency>
...
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>${swagger-codegen-maven-plugin.version}</version>
<configuration>
<generateApiTests>false</generateApiTests>
<generateModelTests>false</generateModelTests>
<language>java</language>
</configuration>https://stackoverflow.com/questions/64466386
复制相似问题