小编won*_*nce的帖子

如何在 Maven 中将多个 OpenAPI 3.0 规范文件合并为一个?

在使用 Spring Boot 的 Maven 项目中,有多个 OpenAPI 3.0 规范文件。一个规范定义了所有 HTTP 错误 (errors.yml),并且 error.yml 的组件在其他规范中引用。我想生成一个输出规范,其中包含 error.yml 的所有组件。

输入规格:

  schema:
    $ref: "errors.yml#/components/schemas/Error"
Run Code Online (Sandbox Code Playgroud)

期望的输出规格:

schema:
  $ref: "#/components/schemas/Error"
  ...
Error:
  ...
Run Code Online (Sandbox Code Playgroud)

我可以使用 swagger-codegen-cli 来做到这一点:

java -Dfile.encoding=UTF-8 -jar swagger-codegen-cli-3.0.33.jar generate -l openapi-yaml -i search-api-contract/target/expert_api.yml -o . -DoutputFile=search-api-contract/target/expert_api.yml
Run Code Online (Sandbox Code Playgroud)

如何使用 Maven pom.xml 生成一份规范?

maven openapi swagger-codegen swagger-codegen-maven-plugin

7
推荐指数
1
解决办法
8504
查看次数

在巨大的目录中转换XML时的java.lang.OutOfMemoryError

我想在一个包含很多级别的庞大目录中使用XSLT2转换XML文件.有超过100万个文件,每个文件是4到10 kB.过了一会儿我总是收到java.lang.OutOfMemoryError:Java堆空间.

我的命令是:java -Xmx3072M -XX:+ UseConcMarkSweepGC -XX:+ CMSClassUnloadingEna bled -XX:MaxPermSize = 512M ...

向-Xmx添加更多内存不是一个好的解决方案.

这是我的代码:

for (File file : dir.listFiles()) {
    if (file.isDirectory()) {
        pushDocuments(file);
    } else {
        indexFiles.index(file);
    }
}

public void index(File file) {
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

    try {
        xslTransformer.xslTransform(outputStream, file);
        outputStream.flush();
        outputStream.close();
    } catch (IOException e) {
        System.err.println(e.toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

由net.sf.saxon.s9api进行的XSLT转换

public void xslTransform(ByteArrayOutputStream outputStream, File xmlFile) {
    try {
        XdmNode source = proc.newDocumentBuilder().build(new StreamSource(xmlFile));
        Serializer out = proc.newSerializer();
        out.setOutputStream(outputStream);
        transformer.setInitialContextNode(source);
        transformer.setDestination(out);
        transformer.transform();

        out.close();
    } …
Run Code Online (Sandbox Code Playgroud)

java xml xslt saxon out-of-memory

5
推荐指数
1
解决办法
3118
查看次数

REST中的MIMEParsingException

我有一个关于MIMEParsingException的问题.我将Java EE 6与NetBeans 6.8一起使用.我用Java编写了一个简单的REST Web服务来打印"hello world",它运行良好.然后我编写一个REST Web服务客户端(Java Main Class)来测试REST:

公共类HelloWorldClient {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    ClientConfig config = new DefaultClientConfig();
    Client client = Client.create(config);
    WebResource service = client.resource(getBaseURI());
    String xml = service.path("resources").path("helloworld").accept(MediaType.TEXT_XML).get(String.class);
    System.out.println(xml);
}

private static URI getBaseURI() {
    return UriBuilder.fromUri("http://localhost:8080/HelloWorldApplication").build();
}
Run Code Online (Sandbox Code Playgroud)

}

它符合顺序没有错误,但是当我运行它时,它会在此行抛出MIMEParsingException:Client client = Client.create(config);

线程"main"中的异常com.sun.jersey.spi.service.ServiceConfigurationError:jersey-client-components:类com.sun.jersey.multipart.impl.MultiPartReader的依赖类org/jvnet/mimepull/MIMEParsingException找不到实现提供程序类java.lang.Object.提供程序实现被忽略.在com.sun.jersey.spi.service.ServiceFinder.fail(ServiceFinder.java:388)的com.sun.jersey.spcess.service.ServiceFinder.access $ 200(ServiceFinder.java:144)com.sun.jersey. spi.service.ServiceFinder $ LazyClassIterator.next(ServiceFinder.java:595)位于com.sun.jersey.spi.service的com.sun.jersey.spi.service.ServiceFinder $ LazyClassIterator.next(ServiceFinder.java:571). Com.sun.jersey.api.client.Client上的ServiceFinder.toClassArray(ServiceFinder.java:374).(Client.java:

谁能解决这个问题?非常感谢.

java rest netbeans6.8

3
推荐指数
1
解决办法
3159
查看次数