0

我最近加入了一个项目。我是初学者。我的职责是创建服务器存根、创建 SDK 并使用 SDK 创建一个 java 客户端并与服务器存根通信。

我使用创建服务器存根,

 java -jar /data/Swagger/swagger-codegen-cli.jar generate \
  -i /data/AM/ame/ameee.json \
  -l spring --library spring-mvc\
  -o /data/stub/spring_mvc

使用它运行它,

mvn clean package jetty:run

网址是,

http://localhost:8002/api/swagger-ui.html

使用生成的 SDK,

java -jar /data/Swagger/swagger-codegen-cli.jar generate \
  -i /data/AM/ame/ameee.json \
  -l java\
  -o /data/stub/SDK

然后我编译了 SDk 并将 .jar 文件导入到我的客户端项目中,这是代码,

import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.MonatizationAPIApi;

import java.io.File;
import java.util.*;
public class MonatizationAPIApiExample {
    public static void main(String[] args) {

        MonatizationAPIApi apiInstance = new MonatizationAPIApi();

        try {
            List<ParticipantType> result = apiInstance.getAllParticipantTypesUsingGET();
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling MonatizationAPIApi#getAllParticipantTypesUsingGET");
            e.printStackTrace();
        }
    }
}

我仍在尝试连接到服务器存根,

这是错误,

Exception when calling MonatizationAPIApi#getAllParticipantTypesUsingGET
io.swagger.client.ApiException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:8080
    at io.swagger.client.ApiClient.execute(ApiClient.java:984)
    at io.swagger.client.api.MonatizationAPIApi.getAllParticipantTypesUsingGETWithHttpInfo(MonatizationAPIApi.java:878)
    at io.swagger.client.api.MonatizationAPIApi.getAllParticipantTypesUsingGET(MonatizationAPIApi.java:865)
    at MonatizationAPIApiExample.main(MonatizationAPIApiExample.java:19)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:8080
    at com.squareup.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:143)
    at com.squareup.okhttp.internal.io.RealConnection.connect(RealConnection.java:112)
    at com.squareup.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184)
    at com.squareup.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126)
    at com.squareup.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95)
    at com.squareup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281)
    at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224)
    at com.squareup.okhttp.Call.getResponse(Call.java:286)
    at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:243)
    at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:205)
    at com.squareup.okhttp.Call.execute(Call.java:80)
    at io.swagger.client.ApiClient.execute(ApiClient.java:980)
    ... 8 more

Process finished with exit code 0

这里的调用地址与我的服务器存根地址不同。我怎样才能改变它?(我到处搜索,我在代码中找不到这样的地址localhost/0:0:0:0:0:0:0:1:8080

PLzz帮帮我。谢谢

4

1 回答 1

0

我的猜测是您的 OpenAPI/Swagger 规范没有正确host定义:https ://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen/src/test/resources/2_0/ petstore.yaml#L12,因此 Swagger Codegen 将其默认为 localhost。

您还可以host在对象中更改运行时期间Configuration(Java API 客户端)

于 2017-03-23T07:38:38.437 回答