JDK8 এর সাথে ওয়েবসেস্কায় ক্লায়েন্ট জেনারেশন ত্রুটি


227

আমার প্রকল্পে আমার একটি ওয়েব পরিষেবা গ্রহণ করা দরকার। আমি নেটবিয়ান ব্যবহার করি তাই আমি আমার প্রকল্পে ডান ক্লিক করে একটি নতুন "ওয়েব সার্ভিস ক্লায়েন্ট" যুক্ত করার চেষ্টা করেছি। গতবার আমি যাচাই করেছি, এটি একটি ওয়েব পরিষেবা ক্লায়েন্ট তৈরির উপায় ছিল। তবে এটি একটি দৃser়তা তদন্তের ফলাফল হিসাবে বলেছিল:

java.lang.AsertionError: org.xML.sax.SAXParseException; systemId: jar: file: /path/to/glassfish/modules/jaxb-osgi.jar! /com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xsd; লাইন সংখ্যা: 52; কলাম নম্বর: 88; schema_reference: স্কিমা দস্তাবেজের 'পড়তে ব্যর্থ xjc.xsd কারণ' ফাইল 'এক্সেস দ্বারা সীমাবদ্ধতা সেট কারণে মঞ্জুরিপ্রাপ্ত নয়,' accessExternalSchema সম্পত্তি।

নেটবিন্সের ডিফল্ট জাভা প্ল্যাটফর্মটি ছিল জেডিকে 8 (ওরাকলের অফিসিয়াল সংস্করণ), সুতরাং যখন আমি আমার নেটবিয়ানস কনফ ফাইলটি পরিবর্তন করেছি এবং আমার ডিফল্ট হিসাবে জেডিকে ((ওরাকল থেকেও) তৈরি করেছিলাম তখন সবকিছু ঠিকঠাক কাজ করেছিল। সুতরাং আমি মনে করি সমস্যাটি JDK8 এর সাথে। এখানে আমার java -versionআউটপুট:

জাভা সংস্করণ "1.8.0"
জাভা (টিএম) এসই রানটাইম এনভায়রনমেন্ট (বিল্ড 1.8.0-বি 132)
জাভা হটস্পট (টিএম) 64-বিট সার্ভার ভিএম (বিল্ড 25.0-বি 70, মিশ্র মোড)

আপাতত, আমি আমার ডিফল্ট জাভা প্ল্যাটফর্ম হিসাবে জেডিকে 7 রাখছি। JDK8 কাজ করার কোন উপায় থাকলে দয়া করে ভাগ করুন।


2
আমি অ্যালিপসে একটি সমস্যা অনুভব করেছি যে এম 2 স্লিপস এবং জেডি কে 1.8 ব্যবহার করার সময় জ্যাক্সবি উত্স তৈরি করা হয়নি। চিহ্নিতকারীদের ভিউতে আমি "অ্যাক্সেসএক্সটার্নালস্কেমা" সম্পর্কে একই ধরণের ত্রুটি দেখেছি। আমি নীচের নির্বাচিত সমাধানটি প্রয়োগ করেছি, পুনরায় সূচনা এবং প্রকল্পটি পরিষ্কার করেছি, উত্স উত্পন্ন হয়েছে!
জোনাস বার্লিন

উত্তর:


403

ঠিক আছে, আমি সমাধানটি খুঁজে পেয়েছি। ( http://docs.oracle.com/javase/7/docs/api/javax/xml/XMLConstants.html#ACCESS_EXTERNAL_SCHEMA এর উপর ভিত্তি করে )

নামে একটি ফাইল তৈরি করুন jaxp.properties(এটি উপস্থিত না থাকলে) /path/to/jdk1.8.0/jre/libএবং তারপরে এই লাইনটি লিখুন:

javax.xml.accessExternalSchema = all

এখানেই শেষ. জেডিকে 8 উপভোগ করুন।


12
ইন্টেলিজের জন্যও কাজ করে।
মাফ্রো 34

1
ম্যাভেন এবং জ্যাক্সবি-প্লাগইন সহ গ্রহণে মাভেন বিল্ডের জন্য কাজ হিসাবেও আমি এই সমাধানটি নিশ্চিত করতে পারি। কেউ জাভা 7 এর জন্য আপনার এই সম্পত্তিটির প্রয়োজন নেই কেন তা ব্যাখ্যা করতে পারেন?
ড্যানি লো

3
এটি আমার পক্ষে কাজ করেছে, তবে আমাকে ফাইলটি /path/to/jdk1.8.0/libপরবর্তী jreডিরেক্টরিতে নয়।
জিওফ

21
এটি খুব বহনযোগ্য নয়। প্রকল্পটি তৈরির চেষ্টা করে এমন প্রতিটি বিকাশকারীর মেশিনে আপনাকে স্থানীয় জেডিকে ইনস্টলেশন করতে হবে।
ন্যাটিক্স

7
এটি আমার জন্য কাজ করছে না, নিম্নলিখিতগুলি কাজ করেছে: javax.xML.accessExternDTD = all, এছাড়াও আমি কোড এ সেট করতে পারি এবং এটি কাজ করে: System.setProperty ("javax.xML.accessExternDTD", "all");
কুর্তাল

118

একটি প্রকৃত উত্তর নয় বরং রেফারেন্স হিসাবে আরও কিছু।

আপনি যদি জ্যাকসউজ ম্যাভেন প্লাগইন ব্যবহার করছেন এবং আপনি একই ত্রুটি বার্তাটি পান তবে উল্লিখিত সম্পত্তিটি প্লাগইন কনফিগারেশনে যুক্ত করুন:

...
<plugin>
  <groupId>org.jvnet.jax-ws-commons</groupId>
  <artifactId>jaxws-maven-plugin</artifactId>
  <version>2.3</version>
  <configuration>
    <!-- Needed with JAXP 1.5 -->
    <vmArgs>
        <vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
    </vmArgs>
  </configuration>
</plugin>

3
accessExternalSchema=allযদি পরে সংস্করণে (0.12.3 মত) ব্যবহারিক মান ডিফল্টরূপে সেট করা হয় org.jvnet.jaxb2.maven2:maven-jaxb2-pluginপ্লাগইন।
জন অনস্টট

উপরেরটি আমার পক্ষে কাজ করে নি। এই সংস্করণটি করেছে: <plugin> <groupId> org.codehaus.mojo </groupId> <artifactId> jaxws-maven-پلিন </ আর্টিক্টআইডি> <version> {। Version.jaxws.plugin} </version> <কনফিগারেশন> < ! - JAXP 1.5 -> <vmArgs> <vmArg> -Djavax.xML.accessExternSchema = all </vmArg> </vmArgs> </configration> </plugin>
Dr4gon

@ জনঅনস্টট: সর্বশেষতম ২.৪.১ রয়েছে এবং এটি ডিফল্টরূপে কাজ করছে না। উত্তরে এ জাতীয় যুক্ত করতে হয়েছিল।
রবার্ট নাইস্টরোজ

36

আমি অ্যাকলিপস আইডিই (পিছু 4.4, লুনা, উইন্ডোজ 7 x64) এর মধ্যে পিঁপড়া তৈরি করি। ইনস্টলড জেআরই লিব বা কোনও পিঁপড়ের স্ক্রিপ্টগুলি পরিবর্তনের পরিবর্তে (আমার একাধিক প্রকল্প রয়েছে যা তাদের বিল্ডগুলিতে এক্সজেসি অন্তর্ভুক্ত করে), আমি অ্যান্টি বিল্ড কনফিগারেশনের জন্য ভিএম আর্গুমেন্টগুলিতে নিম্নলিখিতটি গ্রহণ করতে পছন্দ করি:

-Djavax.xml.accessExternalSchema=all

2
আমি অ্যাপাচি সিএক্সএফ থেকে wsdl2java.bat ব্যবহার করি। সুতরাং আমি এই BAT- ফাইলে সবেমাত্র JVM বিকল্পটি .োকালাম। এটা কাজ করে।
ka3ak

1
আমি আরও যুক্ত করতে পারি, যদি আমরা এই বিকল্পটি পিঁপড়ের প্যারামিটার হিসাবে অন্তর্ভুক্ত করি তবে এখানে উল্লিখিত সমস্তগুলি অন্তর্ভুক্ত, অতিরিক্ত। তবে বিপরীত নয়! সুতরাং এটি সেরা সমাধান। +1 (অবশ্যই, ম্যাভেন ব্যবহারকারীদের ম্যাভেন বিকল্পগুলিতে যথাযথ পরিবর্তন করা উচিত)
গাঙ্গনাস

1
আমি এমভিএন ক্লিন ইনস্টল চালানোর চেষ্টা করার সময় আমার অনুরূপ সমস্যা হয়েছিল, আমি কেবল এই উপরের পতাকাটি যুক্ত করেছি এবং এটি সফলভাবে মোতায়েন করা হয়েছে। ধন্যবাদ
স্পিয়ার এ 1

30

Jdk 1.8.0_66 এর অন্তর্ভুক্ত wsimport 2.2.9 এর জন্য নিম্নলিখিত কাজগুলি:

wsimport -J-Djavax.xml.accessExternalSchema=all ....

এটি আমার পক্ষে কাজ করে। আমি jdk 1.8.0_65 দিয়ে চেষ্টা করেছি এবং এটি কার্যকর হয়নি, তাই নিশ্চিত হন যে আপনি jdk 1.8.0_66 বা তার পরে ব্যবহার করছেন।
জাবে

2
wsimportসরাসরি ব্যবহার করার সময় এটি সঠিক উত্তর ।
ক্রিস্টোফার শুল্টজ

20

আমার ক্ষেত্রে যোগ করা:

javax.xml.accessExternalSchema = all

jaxp.properties কাজ করে না, আমি যোগ করতে হবে:

javax.xml.accessExternalDTD = all

আমার পরিবেশ লিনাক্স পুদিনা 17 এবং জাভা 8 ওরাকল। একই সমস্যাযুক্ত লোকদের উত্তর হিসাবে আমি এটি সেখানে রাখব।


2
এটি নির্ভর করে আপনি বাহ্যিক ডিটিডি বা এক্সএমএল স্কিমা (এক্সএসডি) এ অ্যাক্সেসের অনুমতি দিতে চান কিনা depends ডিটিডি এক্সএমএল স্কিমার পূর্বসূরি। আপনার উভয় সেট করতে হবে এমন ক্ষেত্রেও থাকতে পারে!
ফিলিপ হেলগার

17

আমি এটি আর্টিক্যাক্ট org.codehaus.mojo এর ২.৪ সংস্করণ এবং এটির জন্য পরীক্ষা করেছি ~

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jaxws-maven-plugin</artifactId>
        <version>2.4.1</version>
        <executions>
            <execution>

                <goals>
                    <goal>wsimport</goal>
                </goals>
                <configuration>
                    <wsdlDirectory>path/to/dir/wsdl</wsdlDirectory>
                </configuration>
                <id>wsimport-web-service</id>
                <phase>generate-sources</phase>
            </execution>
        </executions>
        <dependencies>
            <dependency>
                <groupId>javax.xml</groupId>
                <artifactId>webservices-api</artifactId>
                <version>${webservices-api-version}</version>
            </dependency>
        </dependencies>
        <configuration>
            <vmArgs>
                <vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
            </vmArgs>
            <sourceDestDir>generated-sources/jaxws-wsimport</sourceDestDir>
            <xnocompile>true</xnocompile>
            <verbose>true</verbose>
            <extension>true</extension>
            <sei>/</sei>
        </configuration>
    </plugin>
</plugins>

1
সম্ভবত এটি -Djavax.xml.accessExternalSchema=allআপনার প্লাগইন ঘোষণায় কনফিগার করা vmArgs । নেটবিয়ান্স বাগ 244891
কোসজিনস্কি

15

প্রশাসনিক অধিকার ব্যতীত গ্রেডল ব্যবহারকারীদের জন্য একটি ইঙ্গিতটি এখানে: আপনার জ্যাক্সবি-টাস্কে এই লাইনটি যুক্ত করুন:

System.setProperty('javax.xml.accessExternalSchema', 'all')

এটি দেখতে এই রকম হবে:

jaxb {
    System.setProperty('javax.xml.accessExternalSchema', 'all')
    xsdDir = "${project.name}/xsd"
    xjc {
        taskClassname = "com.sun.tools.xjc.XJCTask"
        args = ["-npa", "-no-header"]
    }
}

12

আপনি যদি সিএসএফ-কোডজেন-প্লাগইন দিয়ে ডাব্লুএসডিএলকে জাভে রূপান্তর করার সময় এই সমস্যাটি পান তবে আপনি প্লাগইনটিকে কাঁটাচামচ করে কনফিগার করে অতিরিক্ত "-Djavax.xML.accessExternSchema = সব" জেভিএম বিকল্প সরবরাহ করতে পারেন।

        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>${cxf.version}</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <configuration>
                        <fork>always</fork>
                        <additionalJvmArgs>
                            -Djavax.xml.accessExternalSchema=all
                        </additionalJvmArgs>

1
ধন্যবাদ! উপরের সমস্ত বিকল্পগুলি সাহায্য করবে না এবং আপনার আমার জন্য কাজ করছে
লুডেনাস

10

গ্লাস ফিশ 4.0.০ ওয়েব সার্ভারে একটি ওয়েবসার্ভিস প্রোগ্রাম টেস্ট করার সময় আমি অ্যালিপসে একই ধরণের ত্রুটি পেয়েছিলাম: java.lang.AssertionError: org.xml.sax.SAXParseException; systemId: bundle://158.0:1/com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xsd; lineNumber: 52; columnNumber: 88; schema_reference: Failed to read schema document 'xjc.xsd', because 'bundle' access is not allowed due to restriction set by the accessExternalSchema property.

আমি যোগ করেছি javax.xml.accessExternalSchema = Allমধ্যে jaxp.properties, কিন্তু আমার কাছে doesnot হবে।

তবে আমি এখানে একটি সমাধান পেয়েছি যা নীচে আমার জন্য কাজ করছে: গ্লাসফিশ সার্ভারের জন্য, আমাকে domain.xmlগ্লাস ফিশ, পাথ: <path>/glassfish/domains/domain1বা domain2/config/domain.xml) এর সংশোধন করতে হবে এবং ট্যাগের <jvm-options>-Djavax.xml.accessExternalSchema=all</jvm-options>নিচে যুক্ত করতে হবে<java-config>

....

<java-config> ... <jvm-options>-Djavax.xml.accessExternalSchema=all</jvm-options> </java-config> ... এবং তারপরে গ্লাস ফিশ সার্ভারটি পুনরায় চালু করুন


আমি ডোমেইন.এক্সএমএল ফাইলে <জাভা কনফিগার ক্লাসপথ-প্রত্যয়…> এর দুটি উদাহরণ দেখতে পাচ্ছি। উভয়ের মধ্যে <jvm-options> বিভাগ রয়েছে। আমি উভয় বিভাগে উপরের লাইনটি (jvm-বিকল্প ট্যাগ সহ) স্থাপন করেছি। এটি টেস্ট ওয়েব পরিষেবা চালানোর জন্য এখনও কাজ করে না। আমি জানি যে প্রকল্পটি কাজ করছে কারণ হ্যান্ডকোডযুক্ত ক্লায়েন্ট ফাইল পরিষেবা ফাইলগুলিতে অ্যাক্সেস করে এবং কনসোলে (পরিষেবা ফাইলগুলির সাথে সম্পর্কিত ডাটাবেস থেকে) সঠিক তথ্য মুদ্রণ করে।
ম্যাক্স ওয়েস্ট

<p> আমি প্রকল্পটি বন্ধ করে দিয়েছি এবং ক্লায়েন্ট প্রকল্পটি নেটবিয়ান থেকে বেরিয়ে এসে গ্লাসফিশের নিজেকে বন্ধ করে দেওয়ার জন্য অপেক্ষা করছিলাম (এটি বন্ধ হওয়ার সময় এটি একটি অগ্রগতি মিটার দেখায়)। তারপরে, আমি নেটবিয়ানগুলি পুনরায় চালু করেছি, ওয়েব পরিষেবাদি প্রকল্পটি পুনরায় লোড করেছি, ক্লায়েন্ট ফাইলটি পুনরায় লোড করেছি (এটি একটি পৃথক / নিয়মিত জাভা প্রকল্প ফোল্ডারে কেবল একটি জাভা ক্লাস)। ক্লায়েন্টটি সারণীগুলি মুদ্রণ করে, যা দেখায় যে সার্ভার এবং ডাটাবেস সার্ভার কাজ করছে, পাশাপাশি এসওএপি পরিষেবা ওয়েব পরিষেবাদি এবং ইজেবিগুলি। এটা ঠিক কাজ করছে না। অ্যাক্সেস ইন্টার্নালস্কেমার সেটিংটি কোথাও কবর দেওয়া হয়েছে এবং নতুন জেডিকে সঠিকভাবে সেট করা হচ্ছে না </ </ p>
ম্যাক্স ওয়েস্ট

7

বাহ্যিক স্কিমায় অ্যাক্সেস সক্ষম করা

ওয়েব পরিষেবার ডাব্লুএসডিএল ফাইল বিশ্লেষণ করতে আপনাকে বাহ্যিক স্কিমা অ্যাক্সেস করতে আইডিই এবং গ্লাসফিশ সার্ভার সক্ষম করতে হবে। অ্যাক্সেস সক্ষম করতে আপনাকে আইডিই এবং গ্লাস ফিশ সার্ভারের কনফিগারেশন ফাইলগুলি পরিবর্তন করতে হবে। আরও তথ্যের জন্য, FAQ দেখুন কীভাবে একটি বাহ্যিক স্কিমা দিয়ে ডাব্লুএসডিএল পার্সিং সক্ষম করবেন? আইডিই কনফিগার করা হচ্ছে

কোনও ওয়েব পরিষেবা বা ডাব্লুএসডিএল ফাইল থেকে আইডিইতে একটি ওয়েব পরিষেবা ক্লায়েন্ট তৈরি করতে আপনাকে নেটবিয়ান_ডিফোল্ট_অপশনগুলিতে নিম্নলিখিত স্যুইচটি যুক্ত করতে আইডিই কনফিগারেশন ফাইল (নেটবিয়ানস কোডফ) সংশোধন করতে হবে।

-J-Djavax.xml.accessExternalSchema=all

নেটবিয়ানস কনফিগারেশন ফাইলটি সনাক্ত এবং সংশোধন সম্পর্কে আরও জানতে নেটবিন্স কনফারেন্স এফএকিউ দেখুন। গ্লাস ফিশ সার্ভার কনফিগার করা হচ্ছে

আপনি যদি গ্লাসফিশ সার্ভারে স্থাপন করছেন তবে আপনার ডাব্লুএসডিএল ফাইলটি পার্স করতে এবং পরীক্ষার ক্লায়েন্ট তৈরি করতে বাহ্যিক স্কিমাস অ্যাক্সেস করতে সার্ভারকে সক্ষম করতে গ্লাস ফিশ সার্ভারের (ডোমেন.এক্সএমএল) কনফিগারেশন ফাইলটি পরিবর্তন করতে হবে। বাহ্যিক স্কিমাগুলিতে অ্যাক্সেস সক্ষম করতে গ্লাসফিশ কনফিগারেশন ফাইলটি খুলুন (GLASSFISH_INSTALL / glassfish / ডোমেন / ডোমেন 1 / কনফিগার / ডোমেন.এক্সএমএল) এবং নিম্নলিখিত JVM বিকল্প উপাদান যুক্ত করুন (সাহসী)। পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে সার্ভারটি পুনরায় চালু করতে হবে।

</java-config>
  ...
  <jvm-options>-Djavax.xml.accessExternalSchema=all</jvm-options>
</java-config>

6

ইন্টেলিজ আইডিই সহ মাভেন ব্যবহার করার সময় আপনি -Djavax.xml.accessExternalSchema=allজেভিএম বিকল্পের অধীনে মাভেন বিল্ড সরঞ্জাম রানার কনফিগারেশনের জন্য ম্যাভেন সেটিংসে যুক্ত করতে পারেন


লিনাক্স মিন্ট 17.3, জেডিকে 1.8.0.74 এবং ইন্টেলিজ আইডিইএ 15. থেক্স সহ কাজ করে।
stuchl4n3k

সুন্দর! আইডিই


4

যারা এএনটি টাস্ক ব্যবহার করছে তাদের জন্য wsimport, @CMFly দ্বারা প্রস্তাবিত এবং ডকুমেন্টেশনে সুনির্দিষ্টভাবে বিকল্পটি পাস করার একটি উপায় নিম্নলিখিত:

<wsimport
   <!-- ... -->
   fork="true"
  >
  <jvmarg value="-Djavax.xml.accessExternalSchema=all"/>
</wsimport>

4

এটি এখন 2.5 সংস্করণে স্থির করা হয়েছে (জুলাই / 17 এ প্রকাশিত)। https://github.com/mojohaus/jaxws-maven-plugin/issues/8

২.৪.x সংস্করণগুলির জন্য একটি কার্যনির্বাহ রয়েছে (যেমন https://github.com/mojohaus/jaxws-maven-plugin/issues/4 এ প্রকাশিত হয়েছে ):

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jaxws-maven-plugin</artifactId>
        <version>2.4.1</version>
        <dependencies>
            <dependency>
                <groupId>com.sun.xml.ws</groupId>
                <artifactId>jaxws-tools</artifactId>
                <version>2.2.10</version>
            </dependency>
        </dependencies>
    </plugin>

3

আমি এটি একটি নিয়মিত মাভেন প্রকল্পের সাথে ব্যবহার করেছি এবং এটি চালানোর জন্য এই প্লাগইন নির্ভরতা কনফিগারেশন দিয়ে সমাধান করেছি xjc plugin:

     <plugin>
        <!-- Needed to run the plugin xjc en Java 8 or superior -->
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0-alpha-2</version>
        <executions>
            <execution>
                <id>set-additional-system-properties</id>
                <goals>
                    <goal>set-system-properties</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <properties>
                <property>
                    <name>javax.xml.accessExternalSchema</name>
                    <value>all</value>
                </property>
                <property>
                    <name>javax.xml.accessExternalDTD</name>
                    <value>all</value>
                </property>
            </properties>
        </configuration>
    </plugin>

এই সমাধানটি সহ, আমি jaxws-maven-pluginঅন্যগুলিতে উত্তর হিসাবে 2.5 হিসাবে আপডেট করতে হবে উত্তরগুলি mojohaus.org/jaxws-maven-plugin/usage.html তবে এখনও, আমার ক্ষেত্রে সেরা উত্তর , আপনাকে ধন্যবাদ!
নির্ভরতাহেল

3

jaxp.propertiesআপনার "জেডি কে সংস্করণ / জেআর / লিব" এর পথে একটি ফাইল (এটি উপস্থিত না থাকলে) তৈরি করুন এবং তারপরে এই লাইনটি যুক্ত করুন:

javax.xml.accessExternalSchema = all

2

ঠিকানাটির আরও একটি সমাধান: wiki.netbeans.org

আইডিইতে থাকা ওয়েব সার্ভিস ক্লায়েন্ট উইজার্ড কোনও ওয়েব পরিষেবা বা ডাব্লুএসডিএল ফাইল থেকে কোনও ওয়েব পরিষেবা ক্লায়েন্ট তৈরি করার সময় ডাব্লুএসডিএল ফাইলকে পার্স করে। নীচের স্যুইচটি নেটবিয়ান_ডিফোল্ট_অপশনগুলিতে যুক্ত করতে আপনাকে আইডিই কনফিগারেশন ফাইল (নেটবিয়ানস কনফ) পরিবর্তন করতে হবে। পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে আইডিই পুনরায় চালু করতে হবে।

-J-Djavax.xml.accessExternalSchema=all

গ্লাসফিশে স্থাপন করার সময় আপনাকে একটি ওয়েব পরিষেবার জন্য একটি পরীক্ষার ক্লায়েন্ট তৈরি করতে বাহ্যিক স্কিমা অ্যাক্সেস সক্ষম করতে হবে। অ্যাক্সেস সক্ষম করতে আপনাকে গ্লাস ফিশ সার্ভারের কনফিগারেশন ফাইলটি পরিবর্তন করতে হবে (GLASSFISH_INSTALL / glassfish / ডোমেন / ডোমেন 1 / কনফিগার / ডোমেন.এক্সএমএল) এবং নীচের JVM বিকল্প উপাদান যুক্ত করতে হবে। পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে সার্ভারটি পুনরায় চালু করতে হবে।

</java-config>
  ...
  <jvm-options>-Djavax.xml.accessExternalSchema=all</jvm-options>
</java-config>

আমি দুঃখিত, আমি আর কিছু ভাবতে পারি না।
üzgür Akıncı

1

আপনি যদি পিঁপড়া ব্যবহার করছেন তবে আপনি আপনার জাভা কলগুলিতে একটি জাভিমার্গ যুক্ত করতে পারেন:

<jvmarg value="-Djavax.xml.accessExternalSchema=all" />

আপনি এটি একটি পিঁপড়ের ফাইলটি যেখানে রেখেছেন তা আরও সুনির্দিষ্ট হতে পারেন?
জন এল

1

একটি খুব সাধারণ পোর্টেবল সমাধান হ'ল নিম্নলিখিত কোডের লাইনটি আপনার কোডের একটি গুরুত্বপূর্ণ অংশে কোথাও স্থাপন করা, যার একটি অংশ আপনি নিশ্চিত যে এটি চালানো হবে (উদাহরণস্বরূপ মূল পদ্ধতিতে ডানদিকে):

System.setProperty("javax.xml.accessExternalDTD", "all");

এটি কৌশলগতভাবে maven pom.xML পরিবর্তন না করে প্রয়োজনীয় সিস্টেমের সম্পত্তি প্রোগ্রামক্রমে সেট করে (যা কোনও কারণে আমার পক্ষে কার্যকর হয়নি)।


1

আমি কেবল চেষ্টা করেছি যে আপনি যদি জাভা কোড জেনারেট করার SoapUI (5.4.x)জন্য Apache CXFসরঞ্জামটি ব্যবহার করেন এবং ব্যবহার javax.xml.accessExternalSchema = allকরেন তবে YOUR_JDK/jre/lib/jaxp.propertiesফাইলের মধ্যে রেখে দেওয়াও কাজ করে।


0

অন্য বিকল্পটি হ'ল wsimport.sh শেল স্ক্রিপ্টটি আপডেট করে নিম্নলিখিতগুলি যুক্ত করুন:

Wsimport.sh এই ডিরেক্টরিতে অবস্থিত:

jaxws-ri.2.2.28 / বিন

এক্সিকিউটিভ "$ জাভা" $ ডাব্লুএসআইএমপিএফএসএপিটিএস -জাজাক্স.এক্সএমএল.একসেসটি এক্সটার্নালস্কেমা = অল-জার "$ জ্যাক্সডাব্লুহেসহোম / লিব / জ্যাকসউজ-টুলস.জার" "$ @"


আমি আপনার পরামর্শটি চেষ্টা করতে চাই, তবে স্পষ্টতই jaxws-ri.2.2.28 / বিন আমার মেশিনে কোথাও নেই।
ম্যাক্স ওয়েস্ট

0

আরেকটি রেফারেন্স: আপনি যদি maven-jaxb2-pluginসংস্করণ ০.৯.০ এর পূর্বে ব্যবহার করে থাকেন তবে আপনি এই ইস্যুতে বর্ণিত কর্মক্ষেত্রটি ব্যবহার করতে পারেন , এতে এই আচরণটি প্লাগইনকে প্রভাবিত করেছিল।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.