WEB SERVICE WTP开发心得 2008-07-10 19:00
前2天的WTP开发心得中有不妥的地方,今天补充一下
down-top 开发模式
PLAIN JAVA PACKAGE
WTP3.0
WASCE 2.0.2
------------------------
Distribution of configuration failed. See log for details.
Manifest class path entries must be a valid jar file (JAVAEE 5 Section 8.2): path=EDITracing.jar, resolved to targetURI=EDITracing.jar
looking at: WebServiceProject.war current classpath: [WEB-INF/classes/, WEB-INF/lib/EDITracing.jar, WEB-INF/lib/common-2.2.3.jar, WEB-INF/lib/xsd-2.2.3.jar, WEB-INF/lib/tuscany-sdo-api-r2.1-1.1-incubating.jar, WEB-INF/lib/ecore-xmi-2.2.3.jar, WEB-INF/lib/commons-discovery-0.2.jar, WEB-INF/lib/log4j-1.2.9.jar, WEB-INF/lib/wstx-asl-3.2.0.jar, WEB-INF/lib/tuscany-sdo-impl-1.1-incubating.jar, WEB-INF/lib/ecore-change-2.2.3.jar, WEB-INF/lib/ecore-2.2.3.jar, WEB-INF/lib/tuscany-sdo-tools-1.1-incubating.jar, WEB-INF/lib/saaj.jar, WEB-INF/lib/jaxrpc.jar, WEB-INF/lib/jtds-1.2.jar, WEB-INF/lib/tuscany-das-rdb-1.0-incubating-beta2-revised.jar, WEB-INF/lib/commons-logging.jar, WEB-INF/lib/axis.jar, WEB-INF/lib/wsdl4j.jar, WEB-INF/lib/tuscany-sdo-lib-1.1-incubating.jar, WEB-INF/lib/log4j-1.2.14.jar, WEB-INF/lib/stax-api-1.0.1.jar, ../EDITracing.jar] ignoring modules: [WebServiceProject.war]
org.apache.geronimo.common.DeploymentException: Manifest class path entries must be a valid jar file (JAVAEE 5 Section 8.2): path=EDITracing.jar, resolved to targetURI=EDITracing.jar
looking at: WebServiceProject.war current classpath: [WEB-INF/classes/, WEB-INF/lib/EDITracing.jar, WEB-INF/lib/common-2.2.3.jar, WEB-INF/lib/xsd-2.2.3.jar, WEB-INF/lib/tuscany-sdo-api-r2.1-1.1-incubating.jar, WEB-INF/lib/ecore-xmi-2.2.3.jar, WEB-INF/lib/commons-discovery-0.2.jar, WEB-INF/lib/log4j-1.2.9.jar, WEB-INF/lib/wstx-asl-3.2.0.jar, WEB-INF/lib/tuscany-sdo-impl-1.1-incubating.jar, WEB-INF/lib/ecore-change-2.2.3.jar, WEB-INF/lib/ecore-2.2.3.jar, WEB-INF/lib/tuscany-sdo-tools-1.1-incubating.jar, WEB-INF/lib/saaj.jar, WEB-INF/lib/jaxrpc.jar, WEB-INF/lib/jtds-1.2.jar, WEB-INF/lib/tuscany-das-rdb-1.0-incubating-beta2-revised.jar, WEB-INF/lib/commons-logging.jar, WEB-INF/lib/axis.jar, WEB-INF/lib/wsdl4j.jar, WEB-INF/lib/tuscany-sdo-lib-1.1-incubating.jar, WEB-INF/lib/log4j-1.2.14.jar, WEB-INF/lib/stax-api-1.0.1.jar, ../EDITracing.jar] ignoring modules: [WebServiceProject.war]
at org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestClassPath(DeploymentContext.java:367)
at org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestClassPath(DeploymentContext.java:286)
at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:343)
at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.initContext(TomcatModuleBuilder.java:294)
at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder$$FastClassByCGLIB$$6f85ec2c.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:830)
at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
at org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$5dc97b08.initContext(<generated>)
at org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.initContext(SwitchingModuleBuilder.java:159)
at org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder$$FastClassByCGLIB$$d0c31844.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:830)
at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
at org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$5dc97b08.initContext(<generated>)
at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:577)
at org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:830)
at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
at org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$5eef57fb.buildConfiguration(<generated>)
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:319)
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:135)
at org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
at org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
at org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:168)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown Source)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(Unknown Source)
at javax.management.remote.rmi.RMIConnectionImpl.access$200(Unknown Source)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(Unknown Source)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Could not create JarFile for file: D:\wasce\repository\default\WebServiceProjectEAR.zip\1215686381906\WebServiceProjectEAR.zip-1215686381906.car\EDITracing.jar
at org.apache.geronimo.deployment.DeploymentContext$DefaultJarFileFactory.newJarFile(DeploymentContext.java:271)
at org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestClassPath(DeploymentContext.java:365)
... 69 more
Caused by: java.io.FileNotFoundException: D:\wasce\repository\default\WebServiceProjectEAR.zip\1215686381906\WebServiceProjectEAR.zip-1215686381906.car\EDITracing.jar (系统找不到指定的文件。)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(Unknown Source)
at java.util.jar.JarFile.<init>(Unknown Source)
at java.util.jar.JarFile.<init>(Unknown Source)
at org.apache.geronimo.deployment.DeploymentContext$DefaultJarFileFactory.newJarFile(DeploymentContext.java:269)
... 70 more
遇到这个问题还是老办法
需要把webserviceproject(dynamic web project)属性中的JAVA EE MODUAL DEPENDENCIES->J2EE MODULES页签中的EDITracing.jar类包的勾去掉
因为这个类包不是EJB的包
---------------------------------
如果说"缺少deploy descriptor不能部署,可能原因是使用了最小集合的geromino,不带j2ee包"
这个问题需要为EAR项目中添加deployment descriptor stub
具体做法:邮件EAR项目->JAVA EE tools-> generate deployment descriptor stub
------------------
如果找不到引用类包,需要在webserviceproject的dynamic web project中的WEB-INF/lib中import相关包
--------------------
到现在为止,web service方法的参数中还不能使用java.util.List作为参数,如果将使用List作为参数的方法发布的话,会使得整个包发布失败
可能是不符合jax-rpc的定义规范
需要找到好的方法来传递集合