简体   繁体   English

NetBeans 7.4无法正确创建jar文件

[英]NetBeans 7.4 not creating jar files properly

I am developing a project for a Java Enterprise Applications class. 我正在为Java Enterprise Applications类开发一个项目。 I have an application with an ejb module that has "facade" classes from a class library that connects to a simple Twitter-like database. 我有一个带有ejb模块的应用程序,该模块具有来自类库的“facade”类,该类连接到类似Twitter的简单数据库。 All the logic is working fine, however, when I add the remote beans for the facade and try to run it, the application crashes with the stack trace included at the end. 所有逻辑都运行正常,但是,当我为外观添加远程bean并尝试运行它时,应用程序崩溃,最后包含堆栈跟踪。

Looking throught the GlassFish output screen, I found the following warnings: 查看GlassFish输出屏幕,我发现以下警告:

WARNING: ACDEPL112: The following extensions or libraries are referenced from the manifest of C:\\Users[project_path]\\Questions\\dist\\gfdeploy\\Questions\\QuestionClient.jar but were not found where indicated: QuestionLib.jar ; 警告:ACDEPL112:从C:\\ Users [project_path] \\ Questions \\ dist \\ gfdeploy \\ Questions \\ QuestionClient.jar的清单中引用了以下扩展或库,但在指示的位置找不到:QuestionLib.jar; ignoring and continuing INFO: ACDEPL103: Java Web Start services started for the app client Questions/QuestionClient.jar (contextRoot: /Questions/QuestionClient) INFO: Questions was successfully deployed in 3,097 milliseconds. 忽略并继续INFO:ACDEPL103:为应用程序客户端启动Java Web Start服务问题/ QuestionClient.jar(contextRoot:/ Questions / QuestionClient)INFO:问题已在3,097毫秒内成功部署。 WARNING: The collection of metamodel [EntityType] types is empty. 警告:元模型[EntityType]类型的集合为空。 Model classes may not have been found during entity search for Java SE and some Java EE container managed persistence units. 在实体搜索Java SE和某些Java EE容器管理的持久性单元期间可能找不到模型类。 Please verify that your entity classes are referenced in persistence.xml using either elements or a global false element. 请使用元素或全局false元素验证persistence.xml中是否引用了您的实体类。 The lookup on [class com.problemSet3.db.Questions] will return null. [class com.problemSet3.db.Questions]上的查找将返回null。 WARNING: EJB5184:A system exception occurred during an invocation on EJB QuestionsFacade, method: public java.util.List com.problemSet3.db.AbstractFacade.findAll() 警告:EJB5184:在EJB QuestionsFacade上调用期间发生系统异常,方法:public java.util.List com.problemSet3.db.AbstractFacade.findAll()

When I checked the path, I found that the .jar file mentioned exists where it should, but it is instead named QuestionLib_jar and it is a folder with all the contents of the jar file. 当我检查路径时,我发现提到的.jar文件存在于应该存在的位置,但它被命名为QuestionLib_jar ,它是一个包含jar文件所有内容的文件夹。 This files are being generated by NetBeans, I don't know how the jar files are being compiled to folders instead of actual jars. 这些文件是由NetBeans生成的,我不知道如何将jar文件编译到文件夹而不是实际的jar文件。

How can I fix this? 我怎样才能解决这个问题?

Stack trace 堆栈跟踪

java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:446) at org.glassfish.appclient.client.AppClientFacade.launch(AppClientFacade.java:183) at org.glassfish.appclient.client.AppClientGroupFacade.main(AppClientGroupFacade.java:65) Caused by: javax.ejb.EJBException at com.sun.ejb.containers.EJBContainerTransactionManager.processSystemException(EJBContainerTransactionManager.java:748) at com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:698) at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:503) at com.sun.ejb.containers.B Sun.reflect.DeativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)的java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Method.java:606)org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:446)org.glassfish.appclient.client.AppClientFacade.launch( AppClientFacade.java:183)在org.glassfish.appclient.client.AppClientGroupFacade.main(AppClientGroupFacade.java:65)产生的原因:在com.sun.ejb.containers.EJBContainerTransactionManager.processSystemException(EJBContainerTransactionManager.java javax.ejb.EJBException异常: 748)在com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:698)在com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:503)在com.sun.ejb.containers.B aseContainer.postInvokeTx(BaseContainer.java:4475) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2009) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1979) at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:212) at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79) at com.sun.proxy.$Proxy295.findAll(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:143) at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:173) at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispa aseContainer.postInvokeTx(BaseContainer.java:4475)at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2009)at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1979)at com位于com.sun.proxy的com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)中的.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:212)。$ Proxy295.findAll(Unknown Source )在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect中。方法.invoke(Method.java:606)位于com.sun.corba.ee.impl.presentation.rmi的com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:143)。 ReflectiveTie._invoke(ReflectiveTie.java:173)at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispa tchToServant(ServerRequestDispatcherImpl.java:528) at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199) at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1549) at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1425) at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:930) at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:213) at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:694) at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:496) at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2222) at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497) at com.sun.corba.ee.impl.threadpool.ThreadPoolImp tchToServant(ServerRequestDispatcherImpl.java:528)位于com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199)的com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl。 java:1549)at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1425)at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:930) at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:213)at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:694)at com .sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:496)位于com.sun.corba的com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2222) .ee.impl.threadpool.ThreadPoolImpl $ WorkerThread.performWork(ThreadPoolImpl.java:497)at com.sun.corba.ee.impl.threadpool.ThreadPoolImp l$WorkerThread.run(ThreadPoolImpl.java:540) Caused by: java.lang.IllegalArgumentException: No [EntityType] was found for the key class [com.problemSet3.db.Questions] in the Metamodel - please verify that the [Entity] class was referenced in persistence.xml using a specific com.problemSet3.db.Questions property or a global false element. l $ WorkerThread.run(ThreadPoolImpl.java:540)引起:java.lang.IllegalArgumentException:未找到Metamodel中密钥类[com.problemSet3.db.Questions]的[EntityType] - 请验证[Entity]使用特定的com.problemSet3.db.Questions属性或全局false元素在persistence.xml中引用了class。 at org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.entityEmbeddableManagedTypeNotFound(MetamodelImpl.java:173) at org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.entity(MetamodelImpl.java:193) at org.eclipse.persistence.internal.jpa.querydef.CommonAbstractCriteriaImpl.internalFrom(CommonAbstractCriteriaImpl.java:114) at org.eclipse.persistence.internal.jpa.querydef.AbstractQueryImpl.from(AbstractQueryImpl.java:246) at com.problemSet3.db.AbstractFacade.findAll(AbstractFacade.java:43) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081) at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153) at 在org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.entityEmbeddableManagedTypeNotFound(MetamodelImpl.java:173)在org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.entity(MetamodelImpl.java:193)在org.eclipse .persistence.internal.jpa.querydef.CommonAbstractCriteriaImpl.internalFrom(CommonAbstractCriteriaImpl.java:114)atg.eclipse.persistence.internal.jpa.querydef.AbstractQueryImpl.from(AbstractQueryImpl.java:246)at com.problemSet3.db.AbstractFacade .findAll(AbstractFacade.java:43)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) )位于org.glassfish.ejb.security.application的org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)的java.lang.reflect.Method.invoke(Method.java:606)。 EJBSecurityManager.invoke(EJBSecurityManager.java:1153)at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4695) at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:630) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822) at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582) at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:55) at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822) at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582) at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemIntercept com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4695)在com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:630)在com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext( InterceptorManager.java:822)at.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582)atg.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:55)at sun.reflect.GeneratedMethodAccessor115.invoke (unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept (interceptorManager.java:883)com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)位于com.sun的com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582)。 ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemIntercept orProxy.java:163) at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369) at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4667) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4655) at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:205) ... 19 more Java Result: 1 orProxy.java:163)在com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl。 java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept (interceptorManager.java:883)com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)at at com.sun.ejb.containers.BaseContainer .__ intercept(BaseContainer.java:4667)at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4655)at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke( EJBObjectInvocationHandler.java:205)... 19更多Java结果:1

Well, after a painful night and morning I finally solved it. 好吧,经过一个痛苦的夜晚和早晨,我终于解决了它。 The persistence.xml file that was being used by the ejb module had this line: ejb模块使用的persistence.xml文件具有以下行:

<exclude-unlisted-classes>false</exclude-unlisted-classes>

I went into the properties and made it include each class manually, so now it looks like this: 我进入属性并使其手动包含每个类,所以现在它看起来像这样:

<class>com.problemSet3.db.Answers</class>
<class>com.problemSet3.db.Questions</class>
<class>com.problemSet3.db.Users</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>

plus the other generated code. 加上其他生成的代码。 I still get the warning on GlassFish, but no exceptions are thrown. 我仍然在GlassFish上收到警告,但没有抛出异常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM