在使用 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 生成一份规范?
我想在一个包含很多级别的庞大目录中使用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) 我有一个关于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 ×2
maven ×1
netbeans6.8 ×1
openapi ×1
rest ×1
saxon ×1
swagger-codegen-maven-plugin ×1
xml ×1
xslt ×1