سؤال

أريد أن بناء Axis2 العميل (أنا فقط الوصول إلى ويب البعيد خدمة انا لا تنفيذ واحد!) مع Maven2 و لا أريد أن أضيف 21MB من الجرار إلى المشروع.ماذا يجب أن أضع في بلدي pom.xml ترجمة التعليمات البرمجية عندما كنت تحويلها WSDL مع بنك التنمية الآسيوي ؟

هل كانت مفيدة؟

المحلول

(ملاحظة: هذا الرد تم توفيرها من قبل هارون Digulla نفسه.ما يلي هو بالضبط نص جوابه الخاصة.)

في maven2 الحد الأدنى التبعية تعيين لجعل ADB عمل العميل ("بنك التنمية الآسيوي" كما في الطريقة يمكنك إنشاء فئات Java من WSDL) هو هذا:

    <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-kernel</artifactId>
            <version>1.4.1</version>
    </dependency>
    <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb</artifactId>
            <version>1.4.1</version>
    </dependency>

هممم...يبدو أنني لا يمكن أن العلم أنه الإجابة الصحيحة.يمكن للشخص يرجى نسخ هذا حتى أستطيع أن العلم له وظيفة ؟

نصائح أخرى

الحد الأدنى الجرار للعميل هي:

  • activation-1.1.jar
  • axiom-api-1.2.8.jar
  • axiom-impl-1.2.8.jar
  • axis2-adb-1.5.1.jar
  • axis2-kernel-1.5.1.jar
  • axis2-transport-http-1.5.1.jar
  • axis2-transport-local-1.5.1.jar
  • commons-codec-1.3.jar
  • commons-httpclient-3.1.jar
  • commons-logging-1.1.1.jar
  • httpcore-4.0.jar
  • mail-1.4.jar
  • neethi-2.0.4.jar
  • wsdl4j-1.6.2.jar
  • XmlSchema-1.4.3.jar

ستاكس الجرار أدناه ليست جزءا من Axis2 1.5.1 إصدار وسوف تكون هناك حاجة إذا كان لديك نسخة JDK هو أقل من 6:

  • stax-1.2.0.jar
  • stax-api-1.0.1.jar

وكان لإضافة وسائل النقل، أيضا

<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-adb</artifactId>
    <version>1.5.4</version>
</dependency>
<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-transport-local</artifactId>
    <version>1.5.4</version>
</dependency>
<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-transport-http</artifactId>
    <version>1.5.4</version>
</dependency>

الحد الأدنى من الاعتماد على العامل العميل في ملخص


  • axiom-api-1.2.14.jar
  • axiom-impl-1.2.14.jar
  • axis2-adb-1.6.3.jar
  • axis2-kernel-1.6.3.jar
  • axis2-transport-http-1.6.3.jar
  • axis2-transport-local-1.6.3.jar
  • commons-codec-1.3.jar
  • commons-httpclient-3.1.jar
  • commons-logging-1.1.1.jar
  • httpcore-4.0.jar
  • mail-1.4.jar
  • neethi-3.0.2.jar
  • wsdl4j-1.6.2.jar
  • XmlSchema-1.4.7.jar

المدرجة أدناه الحد الأدنى تبعيات مع التفاصيل

كعب العميل يستخدم ServiceClient الدرجة ولدت مع %AXIS2_HOME%\bin\WSDL2Java أداة ضد معين WSDL (لتوليد سوف تحتاج كل محور الجرار على classpath ، يتحقق بسهولة عن طريق وضع AXIS_HOME)

الفصول المطلوبة من قبل العميل كعب في تجميع الوقت


  • axiom-api-1.2.14.jar -- مطلوب في تجميع الوقت كعب العميل عن المؤسسة.أباتشي.اكسيوم.om.OMElement, org.أباتشي.اكسيوم.الصابون.SOAPEnvelope, org.أباتشي.اكسيوم.الصابون.SOAPFactory, org.أباتشي.اكسيوم.om.OMNamespace
  • axis2-adb-1.6.3.jar -- مطلوب في تجميع الوقت كعب العميل عن المؤسسة.أباتشي.axis2.ربط البيانات.ADBException
  • axis2-kernel-1.6.3.jar -- مطلوب في تجميع الوقت كعب العميل عن المؤسسة.أباتشي.axis2.AxisFault الدرجة

الفصول المطلوبة للنجاح في الاحتجاج كعب العميل في تشغيل الوقت

  • axiom-impl-1.2.14.jar (دون هذا org.أباتشي.اكسيوم.om.OMException:لا ميتا مصنع العثور على ميزة 'الافتراضي';وهذا يعني عادة أن axiom-impl.jar ليس في classpath)
  • axis2-transport-http-1.6.3.jar (دون هذا org.أباتشي.axis2.النشر.DeploymentException:org.أباتشي.axis2.النقل.http.CommonsHTTPTransportSender)
  • axis2-transport-local-1.6.3.jar (دون هذا org.أباتشي.axis2.النشر.DeploymentException:org.أباتشي.axis2.النقل.المحلية.LocalTransportSender)
  • commons-codec-1.3.jar (دون هذه جافا.لانغ.NoClassDefFoundError:org/apache/commons/الترميز/DecoderException)
  • commons-httpclient-3.1.jar (دون هذا org.أباتشي.axis2.النشر.DeploymentException:org/apache/commons/httpclient/HttpException)
  • commons-logging-1.1.1.jar (دون هذه جافا.لانغ.NoClassDefFoundError:org/apache/commons/تسجيل/LogFactory)
  • httpcore-4.0.jar (دون هذه جافا.لانغ.NoClassDefFoundError:org/apache/http/HttpResponseFactory)
  • mail-1.4.jar (دون هذه جافا.لانغ.NoClassDefFoundError:javax/mail/الإنترنت/ParseException)
  • neethi-3.0.2.jar (دون هذه جافا.لانغ.NoClassDefFoundError:org/apache/neethi/PolicyComponent)
  • wsdl4j-1.6.2.jar (دون هذه جافا.لانغ.NoClassDefFoundError:javax/wsdl/WSDLException)
  • XmlSchema-1.4.7.jar (دون هذه جافا.لانغ.ClassNotFoundException:org/apache/ws/commons/مخطط/XmlSchema)

org.أباتشي.axis2.AxisFault:رفض الاتصال:الاتصال -> خطأ فقط إذا كانت خدمة الإنترنت لا تصل أو الوصول إليها لسبب آخر

ملاحظة بالضبط نسخة(ق) ، ومع ذلك قد يكون السلوك عامة بما فيه الكفاية الموضوع التعبئة والتغليف التغييرات عبر الإصدار ، ومن ثم ، mentionined على FQCNs أعلاه

النسخة المحور - 1.6.3

هر النسخة - Apache Tomcat/7.0.64

بريمج الإصدار 3.0

java.وقت التشغيل.الإصدار - 1.7.0_79-b15

Axis2 الإصدار 1.6.2 لن تعمل معي دون axis2-xmlbeans (على الرغم من أن هذا قد يكون أن تفعل شيئا مع حقيقة أن أنا أيضا باستخدام axis2-wsdl2code-مخضرم-المساعد المساعد xmlbeans كما ربط البيانات الإطار).لدي التالية بوم:

    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-kernel</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-adb</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-transport-http</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-transport-local</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-xmlbeans</artifactId>
        <version>1.6.2</version>
    </dependency>

وإذا كان العميل الخاص بك يعمل على جافا 6، النظر في استخدام JAX-WS للاستهلاك WS. يستخدم JAX-WS مستوى JAXB للربط وأنت لا تحتاج إلى جرة إضافية واحدة للعميل.

في الواقع, تحتاج فقط المحور-عبد التبعية منذ axis2-نواة هو شبه تبعية المحور-عبد.ولذلك يمكن أن نلخص الأمر مع:

<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-adb</artifactId>
    <version>1.5.1</version>
</dependency>

في Axis2 النسخة 1.5.1 تظهر وحدات مخضرم قد أعيدت هيكلتها.

وبلدي مخطوطات رائع (عن طريق ADB ملزمة) لديها تبعيات التالية:

@Grapes([
    @Grab(group='org.apache.axis2', module='axis2-kernel', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-adb', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-transport-local', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-transport-http', version='1.5.1'),
])

وهناك منطق لهذه. أنا يمكن أن تستخدم إطارا ملزما البديل عند إنشاء بلدي كعب أو يمكن استخدام بروتوكول نقل بديلة إلى HTTP.

ورمز مثال في هذا <وأ href = "https://stackoverflow.com/questions/2559074/steps-in-creating-a-web-service-using-axis2-the-client-code/2564323#2564323" > الجواب

لأولئك الذين يستخدمون Gradle, ها انا استبعاد غير الضرورية المكتبات:

dependencies {

    ext.compileEx = { lib, exModules, exGroups ->
        compile (lib) {
            exModules.each { exclude module : "$it" }
            exGroups.each  { exclude group: "$it" }
        }
    }

    List axisExModules = [ 'axiom-compat', 'jaxen', 'apache-mime4j-core' ]
    List axisExGroups  = [ 'javax.servlet', 'commons-fileupload', 'org.apache.woden',
                           'javax.ws.rs', 'org.apache.geronimo.specs', 'org.codehaus.woodstox' ]
    compileEx ('org.apache.axis2:axis2-adb:1.6.3', axisExModules, axisExGroups)
    compileEx ('org.apache.axis2:axis2-transport-local:1.6.3', axisExModules, axisExGroups)
    compileEx ('org.apache.axis2:axis2-transport-http:1.6.3', axisExModules, axisExGroups)

}

هنا هو آخر الأصلي في Gradle المنتديات.

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