حدث خطأ أثناء استخدام تخصيص الارتباطات الخارجية لـ jaxb

StackOverflow https://stackoverflow.com/questions/1605825

سؤال

أستخدم أداة wsdlc (weblogic 10.3.1) لإنشاء فئات من wsdl.لدي ملف تخصيص روابط jaxb الخارجية التالي:

<jaxb:bindings
    xmlns="http://java.sun.com/xml/ns/jaxb"
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    schemaLocation="web/WEB-INF/....xsd"
    version="2.1">

    <jaxb:bindings  node="/xs:schema">
        <jaxb:globalBindings>
            <xjc:superClass name="my.MySuperClass" />
        </jaxb:globalBindings>
    </jaxb:bindings>
</jaxb:bindings>

رسالة الخطأ عند التجميع هي:لا يمكن العثور على الرمز my.MySuperClass.ومن جافاك:"الحزمة الخاصة بي غير موجودة".مسار الفصل = كل ما أقوم بتضمينه عبر <pathelement location= إلخ.و60 سطرًا من مكونات Eclipse الإضافية.تكمن المشكلة في أمر javac الذي يبدأه wsdlc.مسار فئة هذا الأمر صحيح (المسارات المشفرة على سبيل المثال) ولكن لا يزال "حزمة ..."غير موجود".

استخدام wsdlc من ant يشبه ذلك:

<path id="class.path">
  <pathelement path="${java.class.path}" />
  <pathelement location="... hard coded path on disk to a jar" />
</path>

<target name="generate-ws-from-wsdl">
<wsdlc failOnError="true"
       srcWsdl="${basedir}/web/WEB-INF/ps.wsdl"
       destImplDir="${basedir}/src"
       destJwsDir="${basedir}/web/WEB-INF/lib"
       srcPortName="PsPort"
       type="JAXWS">
    <binding file="jaxb-bindings.xml" />
    <classpath refid="class.path" />
</wsdlc>
</target>
هل كانت مفيدة؟

المحلول 3

وأنا لم جرة دروسي بشكل صحيح، كنت أعتقد أنني يمكن استخدام برنامج لضغط الملفات بسرعة إضافة بعض الفئات للجرة، ولكن 'المسار' في برنامج لضغط الملفات لا تساوي اسم الحزمة في جافا. استغرق الأمر مني بعض الوقت لكني تعلمت شيئا عن classpaths.

نصائح أخرى

وmy.SuperClass أن موجودة بالفعل، سوف wsdlc لا تولد لانها لكم. عندما يتعلق الأمر تجميع الشفرة التي تم إنشاؤها (الذي هو فيه وأفترض ما هو الفشل هنا)، انها لjavac لا يمكن العثور my.SuperClass في CLASSPATH لها.

يرجى تقديم مقتطف من build.xml يوضح كيفية استخدامك wsdlc.

بحسب ال توثيق:

بالإضافة إلى سمات WSDLC الخاصة بمدونة الويب ، يمكنك أيضًا تحديد سمات Javac القياسية التالية ؛راجع وثائق ANT للحصول على معلومات إضافية حول كل سمة:

  • bootclasspath
  • bootClasspathRef
  • classpath
  • [...]

يمكنك أيضًا استخدام عناصر Child Strainn ANT القياسية مع مهمة WSDLC ANT:

  • <FileSet>
  • <SourcePath>
  • <Classpath>

هل قمت بتحديد مسار الفصل المراد تضمينه my.SuperClass?

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top