【问题标题】:how to import a .JAR file in the "/dist" folder of a Java Application project in netbeans to eclipse如何将netbeans中Java应用程序项目的“/ dist”文件夹中的.JAR文件导入到eclipse
【发布时间】:2015-02-26 15:04:57
【问题描述】:

我在 ecipe spring 工具套件 IDE 中有一个 spring mvc 项目,我想从 WSDL 添加一些类,我尝试使用maven-jaxb2-plugin,但是当我使用 maven 更新我的项目时它什么也不做。因此,我尝试在 Eclipse 中创建一个 Web 服务客户端,并在服务定义中放置我的 WSDL url,但加载几秒钟后它给了我一个 Invalid segment definition,毕竟我尝试在 Netbeans 中创建一个 Java 应用程序项目,然后添加该项目中的 Web 服务客户端使用我的 WSDL url 这次成功了!所以我尝试添加该项目的 .JAR 文件,该文件位于 D:/Users/myUser/Documents/NetBeansProjects/ImportClassesFromWSDL/dist/ImportClassesFromWSDL.jar

我按照此步骤 How to import a jar in Eclipse 将此 jar 添加为外部 JAR,.JAR 已添加但我有此警告 Classpath entry D:/Users/myUser/Documents/NetBeansProjects/ImportClassesFromWSDL/dist/ImportClassesFromWSDL.jar will not be exported or published. Runtime ClassNotFoundExceptions may result. WSproject P/WSproject Classpath Dependency Validator Message 在 Eclipse 文本编辑器中,我可以毫无问题地编写类的名称并毫无问题地创建此类的对象,但是当我运行我的项目并进入从导入的类创建此对象时的部分时,我获取类未找到异常

HTTP 500 - 处理程序处理失败;嵌套异常是 java.lang.NoClassDefFoundError: mycompany/myws/myschema/myClassWs

:  Servlet.service()  servlet [appServlet]  [/app]  [Handler processing failed; nested exception is java.lang.NoClassDefFoundError: mycompany/myws/myschema/myClassWs]     java.lang.ClassNotFoundException: mycompany/myws/myschema/myClassWs
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    at com.pruebaWsCompany.app.HomeController.myWsPage(HomeController.java:54)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

【问题讨论】:

  • 只需将您的 jar 复制到项目中的 WEB-INF/lib 目录,这样它在运行时也可用
  • 感谢我不再有 classNotFound 异常,但有没有办法以合法的方式删除警告 Classpath entry D:/Users/myUser/Documents/NetBeansProjects/ImportClassesFromWSDL/dist/ImportClassesFromWSDL.jar will not be exported or published. Runtime ClassNotFoundExceptions may result. WSproject P/WSproject Classpath Dependency Validator Message? nad 其他问题如果 wsdl 中有新的方法或类会发生什么?以这种方式这样做是没有办法更新我的 JAR 对吗?我是否应该将此视为临时解决方案并尝试使用 maven-plug 来完成
  • 我建议您使用maven-jaxb2-plugin,这样当您的 WSDL 发生更改时,所有更改都会在您进行新的 maven 构建时被拾取。它将首先从 WSDL 构建您更新的源文件,然后将它们添加到您的 src 目录。检查插件配置选项here
  • @Arkantos 我在第一个地方尝试,但我有这个问题stackoverflow.com/questions/28728528/… 我的错误是在我更新我的 maven pom.xml 后没有任何事情发生,我的课程没有被创建
  • 我发布了我对该问题的答案,应该可以解决生成源的问题。有关maven-jaxb2-plugin 可能配置的更多信息,请查看此cheat sheet

标签: java eclipse spring web-services netbeans


【解决方案1】:

我得到了这个工作,我将 .jar 复制到我的 WEB-INF/lib 目录。

感谢@Arkantos 的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-02
    • 2020-04-03
    • 2014-01-09
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    相关资源
    最近更新 更多