我试图部署基本的webservice模板到tomee,我已经尝试了windows 7 64位和windows 8 64位java版本1.8.0_25(64位),1.8.0_91(64位)(这个java版本用于构建代码和运行tomee)。web服务是取自internet的基本示例,源代码如下,以及堆栈跟踪。Tomee 1.7.0和1.7.1直接从互联网下载,没有代码更改或jar更改。什么可能导致这个问题-我需要替换默认的tomee jar(s)吗?
代码:package org.superbiz.calculator.ws;
import javax.ejb.Stateless;
import javax.jws.WebService;
@Stateless
@WebService ( portName = "CalculatorPort" ,
serviceName = "CalculatorService" ,
targetNamespace = "http://superbiz.org/wsdl" ,
endpointInterface = "org.superbiz.calculator.ws.CalculatorWs" )
public class Calculator implements CalculatorWs
{
public int sum( int add1 , int add2 )
{
return add1 + add2;
}
public int multiply( int mul1 , int mul2 )
{
return mul1 * mul2;
}
public String hello()
{
return "hello";
}
}
/* ################################## */
package org.superbiz.calculator.ws;
import javax.jws.WebService;
@WebService ( targetNamespace = "http://superbiz.org/wsdl" )
public interface CalculatorWs
{
public int sum( int add1 , int add2 );
public int multiply( int mul1 , int mul2 );
public String hello();
}
堆栈跟踪:
INFO - ------------------------- localhost -> /host-manager
INFO - Configuring enterprise application: C:apache-tomee-plus-7.0.0webappshost-manager
INFO - Enterprise application "C:apache-tomee-plus-7.0.0webappshost-manager" loaded.
INFO - Assembling app: C:apache-tomee-plus-7.0.0webappshost-manager
INFO - using context file C:apache-tomee-plus-7.0.0webappshost-managerMETA-INFcontext.xml
INFO - Deployed Application(path=C:apache-tomee-plus-7.0.0webappshost-manager)
INFO - At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TL
Ds were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
INFO - Deployment of web application directory C:apache-tomee-plus-7.0.0webappshost-manager has finished in 391 ms
INFO - Deploying web application directory C:apache-tomee-plus-7.0.0webappsmanager
INFO - ------------------------- localhost -> /manager
INFO - Configuring enterprise application: C:apache-tomee-plus-7.0.0webappsmanager
INFO - Enterprise application "C:apache-tomee-plus-7.0.0webappsmanager" loaded.
INFO - Assembling app: C:apache-tomee-plus-7.0.0webappsmanager
INFO - using context file C:apache-tomee-plus-7.0.0webappsmanagerMETA-INFcontext.xml
INFO - Deployed Application(path=C:apache-tomee-plus-7.0.0webappsmanager)
INFO - At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TL
Ds were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
INFO - Deployment of web application directory C:apache-tomee-plus-7.0.0webappsmanager has finished in 69 ms
INFO - Deploying web application directory C:apache-tomee-plus-7.0.0webappsROOT
INFO - ------------------------- localhost -> /
INFO - Configuring enterprise application: C:apache-tomee-plus-7.0.0webappsROOT
INFO - Enterprise application "C:apache-tomee-plus-7.0.0webappsROOT" loaded.
INFO - Assembling app: C:apache-tomee-plus-7.0.0webappsROOT
INFO - Deployed Application(path=C:apache-tomee-plus-7.0.0webappsROOT)
INFO - At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TL
Ds were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
INFO - Deployment of web application directory C:apache-tomee-plus-7.0.0webappsROOT has finished in 60 ms
INFO - Deploying web application directory C:apache-tomee-plus-7.0.0webappssimple-webservice
INFO - ------------------------- localhost -> /simple-webservice
SEVERE - ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/simple-webservice]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1107)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1841)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.tomee.catalina.TomEERuntimeException: org.apache.openejb.OpenEJBException: Unable to create annotation scanner for web module simple-webse
rvice: 43626
at org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatWebAppBuilder.java:2256)
at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1151)
at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1112)
at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5093)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
... 10 more
Caused by: org.apache.openejb.OpenEJBException: Unable to create annotation scanner for web module simple-webservice: 43626
at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoader.java:883)
at org.apache.openejb.config.DeploymentLoader.load(DeploymentLoader.java:231)
at org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatWebAppBuilder.java:2254)
... 16 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 43626
at org.apache.xbean.asm5.ClassReader.readClass(Unknown Source)
at org.apache.xbean.asm5.ClassReader.accept(Unknown Source)
at org.apache.xbean.asm5.ClassReader.accept(Unknown Source)
at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinder.java:1170)
at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java:147)
at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java:160)
at org.apache.openejb.config.FinderFactory$OpenEJBAnnotationFinder.<init>(FinderFactory.java:546)
at org.apache.openejb.config.FinderFactory.newFinder(FinderFactory.java:267)
at org.apache.openejb.config.FinderFactory.create(FinderFactory.java:80)
at org.apache.openejb.config.FinderFactory.createFinder(FinderFactory.java:69)
at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoader.java:875)
... 18 more
SEVERE - Error deploying web application directory C:apache-tomee-plus-7.0.0webappssimple-webservice
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].Stan
dardHost[localhost].StandardContext[/simple-webservice]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:730)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1107)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1841)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
INFO - Deployment of web application directory C:apache-tomee-plus-7.0.0webappssimple-webservice has finished in 61 ms
INFO - Starting ProtocolHandler [http-nio-8080]
INFO - Starting ProtocolHandler [ajp-nio-8009]
INFO - Server startup in 621 ms
我认为其中一个类文件可能会损坏并试图加载它并抛出此错误,但是库根本没有帮助,因为它们不记录其试图加载的类和查找相同的源代码tomee正在使用(所以我可以添加日志记录)是困难的,因为maven和在线中的源代码似乎有不同的包名称,他们实际构建二进制文件(奇怪)。唯一的解决方案似乎是通过删除几个(或一次删除一个类)