Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何解决异常”;java.lang.IllegalArgumentException:name";在命令提示符下运行SpringBootJAR时,但在eclipse中运行时,情况良好_Java_Spring Boot_Cucumber_Spring Rest_Citrus Framework - Fatal编程技术网

“如何解决异常”;java.lang.IllegalArgumentException:name";在命令提示符下运行SpringBootJAR时,但在eclipse中运行时,情况良好

“如何解决异常”;java.lang.IllegalArgumentException:name";在命令提示符下运行SpringBootJAR时,但在eclipse中运行时,情况良好,java,spring-boot,cucumber,spring-rest,citrus-framework,Java,Spring Boot,Cucumber,Spring Rest,Citrus Framework,我有一个简单的FeatureController类,它通过Rest调用公开cucumber测试用例。这是控制器类 @RestController @RequestMapping("/featureTest") public class FeatureController { @RequestMapping(value="/MQEndtoEnd",produces = MediaType.TEXT_HTML_VALUE) publi

我有一个简单的FeatureController类,它通过Rest调用公开cucumber测试用例。这是控制器类

    @RestController
@RequestMapping("/featureTest")
public class FeatureController {

    @RequestMapping(value="/MQEndtoEnd",produces = MediaType.TEXT_HTML_VALUE)
    public String executeFeature(@RequestParam(name = "FeatureFileName") String featureFileName) 
      throws Throwable  {
        String path="D:\\citrus\\Report_Directory\\citrus-test-results.html";         
         String content="";
    
              String[] cucumberOptions = new String[] { "--glue", "D:/citrus_works/citrus",
              "--plugin",
              
              "com.consol.citrus.cucumber.CitrusReporter",
              "D:/citrus_works/citrus/endtoend.feature" }; 
            
              int exitStatus =
              cucumber.api.cli.Main.run(cucumberOptions,
              Thread.currentThread().getContextClassLoader());//this line executes cucumber test case
        try {
            content = FileUtils.readFileToString(new File(path), StandardCharsets.UTF_8);
         
        } catch (IOException e) {
            e.printStackTrace();
        }

                return content;
    }
    
}
上面的类读取并执行测试用例,并将报告文件放置在此目录“D:\citrus\report\u directory\citrus test results.html”中

这是我的春季靴子课

导入org.springframework.boot.SpringApplication

@org.springframework.boot.autoconfigure.SpringBootApplication
public class SpringBootApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(SpringBootApplication.class, args);
    }

}
在eclipse中通过rest调用公开测试用例时,测试用例执行得很好,但在使用命令“java-jar”构建SpringBootjar后尝试执行时,出现了以下堆栈跟踪

2020-09-14 17:41:16.938 ERROR 15668 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: name] with root cause

java.lang.IllegalArgumentException: name
        at java.base/jdk.internal.loader.URLClassPath$Loader.findResource(URLClassPath.java:603) ~[na:na]
        at java.base/jdk.internal.loader.URLClassPath$1.next(URLClassPath.java:344) ~[na:na]
        at java.base/jdk.internal.loader.URLClassPath$1.hasMoreElements(URLClassPath.java:354) ~[na:na]
        at java.base/java.net.URLClassLoader$3$1.run(URLClassLoader.java:651) ~[na:na]
        at java.base/java.net.URLClassLoader$3$1.run(URLClassLoader.java:649) ~[na:na]
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) ~[na:na]
        at java.base/java.net.URLClassLoader$3.next(URLClassLoader.java:648) ~[na:na]
        at java.base/java.net.URLClassLoader$3.hasMoreElements(URLClassLoader.java:673) ~[na:na]
        at org.springframework.boot.loader.LaunchedURLClassLoader$UseFastConnectionExceptionsEnumeration.hasMoreElements(LaunchedURLClassLoader.java:198) ~[citrus-integration-test-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at java.base/java.lang.CompoundEnumeration.next(ClassLoader.java:3042) ~[na:na]
        at java.base/java.lang.CompoundEnumeration.hasMoreElements(ClassLoader.java:3051) ~[na:na]
        at java.base/java.lang.CompoundEnumeration.next(ClassLoader.java:3042) ~[na:na]
        at java.base/java.lang.CompoundEnumeration.hasMoreElements(ClassLoader.java:3051) ~[na:na]
        at cucumber.runtime.io.ClasspathResourceIterable.iterator(ClasspathResourceIterable.java:31) ~[cucumber-core-3.0.2.jar!/:na]
        at cucumber.runtime.io.ResourceLoaderClassFinder.getDescendants(ResourceLoaderClassFinder.java:22) ~[cucumber-core-3.0.2.jar!/:na]
        at cucumber.runtime.Reflections.instantiateSubclasses(Reflections.java:33) ~[cucumber-core-3.0.2.jar!/:na]
        at cucumber.runtime.Reflections.instantiateExactlyOneSubclass(Reflections.java:17) ~[cucumber-core-3.0.2.jar!/:na]
        at cucumber.runtime.Runtime.loadBackends(Runtime.java:86) ~[cucumber-core-3.0.2.jar!/:na]
        at cucumber.runtime.Runtime.<init>(Runtime.java:42) ~[cucumber-core-3.0.2.jar!/:na]
        at cucumber.api.cli.Main.run(Main.java:34) ~[cucumber-core-3.0.2.jar!/:na]
        at com.miracle.testing.FeatureController.executeFeature(FeatureController.java:35) ~[classes!/:0.0.1-SNAPSHOT]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) ~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:891) ~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) ~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) ~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) ~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866) ~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) ~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) ~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) ~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) ~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[na:na]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]

2020-09-14 17:41:16.938错误15668-[nio-8080-exec-1]o.a.c.c.c.[/].[dispatcherServlet]:路径为[]的上下文中Servlet[dispatcherServlet]的Servlet.service()引发了异常[请求处理失败;嵌套异常为java.lang.IllegalArgumentException:name],根本原因为

java.lang.IllegalArgumentException:名称 在java.base/jdk.internal.loader.URLClassPath$loader.findResource(URLClassPath.java:603)~[na:na] 在java.base/jdk.internal.loader.URLClassPath$1.next(URLClassPath.java:344)~[na:na] 在java.base/jdk.internal.loader.URLClassPath$1.hasMoreElements(URLClassPath.java:354)~[na:na] 在java.base/java.net.URLClassLoader$3$1.run(URLClassLoader.java:651)~[na:na] 在java.base/java.net.URLClassLoader$3$1.run(URLClassLoader.java:649)~[na:na] 在java.base/java.security.AccessController.doPrivileged(AccessController.java:391)~[na:na] 在java.base/java.net.URLClassLoader$3.next(URLClassLoader.java:648)~[na:na] 在java.base/java.net.URLClassLoader$3.hasMoreElements(URLClassLoader.java:673)~[na:na] 在org.springframework.boot.loader.LaunchedURLClassLoader$UseFastConnectionExceptionsEnumeration.hasMoreElements(LaunchedURLClassLoader.java:198)~[citrus-integration-test-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] 在java.base/java.lang.CompoundEnumeration.next(ClassLoader.java:3042)~[na:na] 在java.base/java.lang.CompoundEnumeration.hasMoreElements(ClassLoader.java:3051)~[na:na] 在java.base/java.lang.CompoundEnumeration.next(ClassLoader.java:3042)~[na:na] 在java.base/java.lang.CompoundEnumeration.hasMoreElements(ClassLoader.java:3051)~[na:na] 在cucumber.runtime.io.ClasspathResourceIterable.iterator(ClasspathResourceIterable.java:31)~[cucumber-core-3.0.2.jar!/:na] 在cucumber.runtime.io.ResourceLoaderClassFinder.getSubstands(ResourceLoaderClassFinder.java:22)~[cucumber-core-3.0.2.jar!/:na] 在cucumber.runtime.Reflections.instanceSubclass(Reflections.java:33)~[cucumber-core-3.0.2.jar!/:na] 在cucumber.runtime.Reflections.instanceeexactlyonesubclass(Reflections.java:17)~[cucumber-core-3.0.2.jar!/:na] 在cucumber.runtime.runtime.loadBackends(runtime.java:86)~[cucumber-core-3.0.2.jar!/:na] 在cucumber.runtime.runtime.(runtime.java:42)~[cucumber-core-3.0.2.jar!/:na] 在cucumber.api.cli.Main.run(Main.java:34)~[cucumber-core-3.0.2.jar!/:na] 在com.miracle.testing.FeatureController.executeFeature(FeatureController.java:35)~[classes!/:0.0.1-SNAPSHOT] 在java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:na] 在java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)~[na:na] 在java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)~[na:na] 在java.base/java.lang.reflect.Method.invoke(Method.java:564)~[na:na] 在org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE] 在org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)~[spring-web-5.0.9.RELEASE.jar!/:5.0.9.RELEASE] 在org.springframework.web.servlet.mvc.method.annotation.ServletinInvocableHandlerMethod.invokeAndHandle(ServletinInvocableHandlerMethod.java:102)~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE] 在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:891)~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE] 在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE] 在org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE] 在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE] 在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE] 在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE] 在org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE] 在javax.servlet.http.HttpServlet.service(HttpServlet.java:635)~[tomcat-embed-core-8.5.34.jar!/:8.5.34] 在org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)~[spring-webmvc-5.0.9.RELEASE.jar!/:5.0.9.RELEASE] 在javax.servlet.http.HttpServlet.service(HttpServlet.java:742)~[tomcat-embed-core-8.5.34.jar!/:8.5.34] 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)~[tomcat-embed-core-8.5.34.jar!/:8.5.34] 在org。