2010-04-27 2 views
0

Я использую IBM Rational Application Developer. У меня есть скрипт ant, который содержит задачу Java2WSDL. Когда я запускаю его через IBM, он дает ошибки компилятора, если я не включу файл j2ee.jar в путь к классам с помощью инструмента run (он не отображает файлы jar в пути к классам в скрипте). Тем не менее, мне нужно иметь возможность вызвать этот скрипт программно, и он дает мне эту ошибку: «java.lang.NoClassDefFoundError: org.eclipse.core.runtime.CoreException« Я не уверен, какие банки необходимо добавить или где? Поскольку выполняется простой скрипт эха, я предполагаю, что нужно добавить j2ee.jar или другой баннер муравья. Я добавил его в путь сборки проекта, но это не помогает. (У меня также есть ant.jar, wsanttasks.jar, все муравьиные банки из плагина, tools.jar, remoteAnt.jar и swt - все, которые включены в путь построения, когда вы запускаете скрипт сам по себе.)Как добавить программный скрипт j2ee.jar в скрипт Java2WSDL?


Сценарий:

<?xml version="1.0" encoding="UTF-8"?>      
<project default="build" basedir="."> 

    <path id="lib.path"> 
    <fileset dir="C:\Program Files\IBM\WebSphere\AppServer\lib" includes="*.jar"/> 
      <!-- 
     Adding these does not help. 
     <fileset dir="C:\Program Files\IBM\SDP70Shared\plugins\org.apache.ant_1.6.5\lib" includes="*.jar"/> 
     <fileset dir="C:\Program Files\IBM\SDP70\jdk\lib" includes="*.jar"/> 
     <fileset dir="C:\Program Files\IBM\SDP70\configuration\org.eclipse.osgi\bundles\1139\1\.cp\lib" includes="*.jar"/> 
     <fileset dir="C:\Program Files\IBM\SDP70Shared\plugins" includes="*.jar"/> 
     --> 
    </path>   

    <taskdef name="java2wsdl" 
      classname="com.ibm.websphere.ant.tasks.Java2WSDL"> 
    <classpath refid="lib.path"/> 
    </taskdef> 

    <target name="build"> 
     <echo message="Beginning build"/> 
    <javac srcdir="C:\J2W_Test\Java2Wsdl_Example" 
      destdir="C:\J2W_Test\Java2Wsdl_Example"> 
     <classpath refid="lib.path"/> 
     <include name="WSExample.java"/> 
    </javac> 
    <echo message="Set up javac"/> 
    <echo message="Running java2wsdl"/> 
    <java2wsdl output="C:\J2W_Test\Java2Wsdl_Example\example\META-INF\wsdl\WSExample.wsdl" 
       classpath="C:\J2W_Test\Java2Wsdl_Example" 
       className= "example.WSExample" 
       namespace="http://example" 
       namespaceImpl="http://example" 
       location="http://localhost:9080/example/services/WSExample" 
       style="document" 
       use="literal"> 
     <mapping namespace="http://example" package="example"/> 
    </java2wsdl> 
    <echo message="Complete"/> 
    </target>     

</project> 

Код:

File buildFile = new File("build.xml"); 
    Project p = new Project(); 
    p.setUserProperty("ant.file", buildFile.getAbsolutePath()); 

    DefaultLogger consoleLogger = new DefaultLogger(); 
    consoleLogger.setErrorPrintStream(System.err); 
    consoleLogger.setOutputPrintStream(System.out); 
    consoleLogger.setMessageOutputLevel(Project.MSG_INFO); 
    p.addBuildListener(consoleLogger); 

    try { 
    p.fireBuildStarted(); 
    p.init(); 
    ProjectHelper helper = ProjectHelper.getProjectHelper(); 
    p.addReference("ant.projectHelper", helper); 
    helper.parse(p, buildFile); 
    p.executeTarget(p.getDefaultTarget()); 
    p.fireBuildFinished(null); 
    } catch (BuildException e) { 
    p.fireBuildFinished(e); 
    } 

Ошибка:

[java2wsdl] java.lang.NoClassDefFoundError: org.eclipse.core.runtime.CoreException 
[java2wsdl]  at java.lang.J9VMInternals.verifyImpl(Native Method) 
[java2wsdl]  at java.lang.J9VMInternals.verify(J9VMInternals.java:68) 
[java2wsdl]  at java.lang.J9VMInternals.initialize(J9VMInternals.java:129) 
[java2wsdl]  at com.ibm.ws.webservices.multiprotocol.discovery.ServiceProviderManager.getDiscoveredServiceProviders(ServiceProviderManager.java:378) 
[java2wsdl]  at com.ibm.ws.webservices.multiprotocol.discovery.ServiceProviderManager.getAllServiceProviders(ServiceProviderManager.java:214) 
[java2wsdl]  at com.ibm.ws.webservices.wsdl.fromJava.Emitter.initPluggableBindings(Emitter.java:2704) 
[java2wsdl]  at com.ibm.ws.webservices.wsdl.fromJava.Emitter.<init>(Emitter.java:389) 
[java2wsdl]  at com.ibm.ws.webservices.tools.ant.Java2WSDL.execute(Java2WSDL.java:122) 
[java2wsdl]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) 
[java2wsdl]  at org.apache.tools.ant.Task.perform(Task.java:364) 
[java2wsdl]  at org.apache.tools.ant.Target.execute(Target.java:341) 
[java2wsdl]  at org.apache.tools.ant.Target.performTasks(Target.java:369) 
[java2wsdl]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) 
[java2wsdl]  at org.apache.tools.ant.Project.executeTarget(Project.java:1185) 
[java2wsdl]  at att.ant.RunAnt.main(RunAnt.java:32) 
+0

Это известная проблема с IBM java2wsdl. – Marcus

ответ

0

A jarfinder поиск предполагает, что, поскольку вы работаете за пределами среды Rational, вам необходим доступ к ядру ядра Eclipse (возможно), где этот файл может содержаться.

Смежные вопросы