无法在类路径中找到 xslt 文件
xslt file not able to find in classpath
尝试使用包含规则
的 XSLT 文件将一个 xml 转换为另一个 xml
从输入文件夹中读取 xslt 存在于 src/main/resources/test.xslt 中,输出存储在 F 驱动器的输出文件夹中
@Component
public class MyRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("file:F:\input")
.to("xslt:file:///springApp/test.xslt")
.to("file:F:\output");
}
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xml.validation</groupId>
<artifactId>springApp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath />
</parent>
<dependencies>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
<version>3.7.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<java.version>1.8</java.version>
</properties>
</project>
错误:-
org.apache.camel.FailedToStartRouteException: Failed to start route route1 because of null
at org.apache.camel.impl.engine.RouteService.warmUp(RouteService.java:122) ~[camel-base-engine-3.7.0.jar:3.7.0]
at org.apache.camel.impl.engine.InternalRouteStartupManager.doWarmUpRoutes(InternalRouteStartupManager.java:270) ~[camel-base-engine-3.7.0.jar:3.7.0]
at org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:157) ~[camel-base-engine-3.7.0.jar:3.7.0]
Caused by: org.apache.camel.RuntimeCamelException: javax.xml.transform.TransformerException: java.io.FileNotFoundException: \springApp\test.xslt (The network path was not found)
at org.apache.camel.RuntimeCamelException.wrapRuntimeException(RuntimeCamelException.java:66) ~[camel-api-3.7.0.jar:3.7.0]
at org.apache.camel.support.service.BaseService.doFail(BaseService.java:409) ~[camel-api-3.7.0.jar:3.7.0]
尝试更改路径 -
@Component
public class MyRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("file:F:\input")
.to("xslt:springApp/src/main/resources/test.xslt")
.to("file:C:\output");
}
获取错误
org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> To[xslt:springApp/src/main/resources/test.xslt] <<< in route: Route(route1)[From[file:F:\input] -> [To[xslt:springApp because of Failed to resolve endpoint: xslt://springApp/src/main/resources/test.xslt due to: javax.xml.transform.TransformerException: java.io.FileNotFoundException: Cannot find resource: classpath:springApp /src/main/resources/test.xslt in classpath for URI: classpath:springApp /src/main/resources/test.xslt
at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:229) ~[camel-core-reifier-3.7.0.jar:3.7.0]
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: xslt://springApp/src/main/resources/test.xslt due to: javax.xml.transform.TransformerException: java.io.FileNotFoundException: Cannot find resource: classpath:springApp/src/main/resources/test.xslt in classpath for URI: classpath:springApp/src/main/resources/test.xslt
at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:73) ~[camel-core-reifier-3.7.0.jar:3.7.0]
您只需要类路径中的相对路径,这将是:
to("xslt:test.xslt")
尝试使用包含规则
的 XSLT 文件将一个 xml 转换为另一个 xml从输入文件夹中读取 xslt 存在于 src/main/resources/test.xslt 中,输出存储在 F 驱动器的输出文件夹中
@Component
public class MyRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("file:F:\input")
.to("xslt:file:///springApp/test.xslt")
.to("file:F:\output");
}
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xml.validation</groupId>
<artifactId>springApp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath />
</parent>
<dependencies>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
<version>3.7.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<java.version>1.8</java.version>
</properties>
</project>
错误:-
org.apache.camel.FailedToStartRouteException: Failed to start route route1 because of null
at org.apache.camel.impl.engine.RouteService.warmUp(RouteService.java:122) ~[camel-base-engine-3.7.0.jar:3.7.0]
at org.apache.camel.impl.engine.InternalRouteStartupManager.doWarmUpRoutes(InternalRouteStartupManager.java:270) ~[camel-base-engine-3.7.0.jar:3.7.0]
at org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:157) ~[camel-base-engine-3.7.0.jar:3.7.0]
Caused by: org.apache.camel.RuntimeCamelException: javax.xml.transform.TransformerException: java.io.FileNotFoundException: \springApp\test.xslt (The network path was not found)
at org.apache.camel.RuntimeCamelException.wrapRuntimeException(RuntimeCamelException.java:66) ~[camel-api-3.7.0.jar:3.7.0]
at org.apache.camel.support.service.BaseService.doFail(BaseService.java:409) ~[camel-api-3.7.0.jar:3.7.0]
尝试更改路径 -
@Component
public class MyRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("file:F:\input")
.to("xslt:springApp/src/main/resources/test.xslt")
.to("file:C:\output");
}
获取错误
org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> To[xslt:springApp/src/main/resources/test.xslt] <<< in route: Route(route1)[From[file:F:\input] -> [To[xslt:springApp because of Failed to resolve endpoint: xslt://springApp/src/main/resources/test.xslt due to: javax.xml.transform.TransformerException: java.io.FileNotFoundException: Cannot find resource: classpath:springApp /src/main/resources/test.xslt in classpath for URI: classpath:springApp /src/main/resources/test.xslt
at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:229) ~[camel-core-reifier-3.7.0.jar:3.7.0]
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: xslt://springApp/src/main/resources/test.xslt due to: javax.xml.transform.TransformerException: java.io.FileNotFoundException: Cannot find resource: classpath:springApp/src/main/resources/test.xslt in classpath for URI: classpath:springApp/src/main/resources/test.xslt
at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:73) ~[camel-core-reifier-3.7.0.jar:3.7.0]
您只需要类路径中的相对路径,这将是:
to("xslt:test.xslt")