facebook

XML validation through a proxy [Enhancement]

💡
Our Forums Have Moved

For help with installation, bugs reports or feature requests, please head over to our new forums.
Genuitec Community on GitHub

  1. MyEclipse IDE
  2.  > 
  3. General Development
Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #198548 Reply

    Hi

    I am using version 3.6.0 (and am about to try 3.6.2) on a portable. When I am docked at home connected to the Internet all is fine. When I am undocked, and even worse when docked at work and connect to the Internet via a NTLM proxy then the xdcolet build for EJB’s is very very slow because of the XML validation.

    I have tried turing off the validation on the myeclipse xml editor preferences – no luck. I also followed the related thread on slow validation which indicated that this problem has been fixed. No luck for me.

    Is there any way to turn off XML validation or to store DTDs locally or anything?

    Adrian

    #198549

    Scott Anderson
    Participant

    Adrian,

    The XML preference setting turns of validation for deployment descriptors as far as our builders are concerned, but XDoclet has its own settings in the doclets. Please look at all your checked tags and ensure that the ‘validate’ attribute on all of them is set to false.

    I’d also strongly suggest an upgrade to 3.6.2 due to the number of issues addressed above 3.6.0.

    –Scott
    MyEclipse Support

    #198550

    Thanks.

    I am sure I have all the validation turned off – I attach the xdoclet-build.xml file.
    The dialog I get “pauses” at points like:

    Refreshing: /xyz
    Validating /xyz/classes/../jboss.xml
    etc.

    “Refreshing” – is that after xdoclet has run and the workbench is doing somehing?

    Adrian

    I will update to 3.6.2. – just as soon as I download eclipse3.0M3 😉

    xdoclet-build.xml file

    —-
    <?xml version=”1.0″ encoding=”UTF-8″?>
    <project default=”_generation_” name=”XDoclet Generator”>
    <path id=”xdoclet.classpath”><pathelement location=”C:/Program Files/eclipse/workspace/openbpmserver/classes”/>
    <pathelement location=”C:/j2sdk1.4.2/jre/lib/rt.jar”/>
    <pathelement location=”C:/j2sdk1.4.2/jre/lib/ext/dnsns.jar”/>
    <pathelement location=”C:/j2sdk1.4.2/jre/lib/ext/jmf.jar”/>
    <pathelement location=”C:/j2sdk1.4.2/jre/lib/ext/ldapsec.jar”/>
    <pathelement location=”C:/j2sdk1.4.2/jre/lib/ext/localedata.jar”/>
    <pathelement location=”C:/j2sdk1.4.2/jre/lib/ext/sound.jar”/>
    <pathelement location=”C:/j2sdk1.4.2/jre/lib/ext/sunjce_provider.jar”/>
    <pathelement location=”C:/Program Files/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.6.0/data/libraryset/1.3/javax.servlet.jar”/>
    <pathelement location=”C:/Program Files/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.6.0/data/libraryset/1.3/jboss-j2ee.jar”/>
    <pathelement location=”C:/Program Files/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.6.0/data/libraryset/1.3/jboss-jaas.jar”/>
    <pathelement location=”C:/Program Files/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.6.0/data/libraryset/1.3/jts.jar”/>
    <pathelement location=”C:/Program Files/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.6.0/data/libraryset/1.3/mail.jar”/>

    <fileset dir=”C:/Program Files/MyEclipse/eclipse/plugins/org.jboss.ide.eclipse.xdoclet.core_3.6.0/”>
    <include name=”*.jar”/>
    </fileset>
    </path>
    <target name=”_generation_” depends=”N10004″/>
    <target name=”N10004″ description=”Standard EJB”>
    <taskdef classpathref=”xdoclet.classpath” classname=”xdoclet.modules.ejb.EjbDocletTask” name=”ejbdoclet”/><ejbdoclet ejbSpec=”2.0″ excludedTags=”@version,@author,@todo” destDir=”src” verbose=”true” addedTags=”@xdoclet-generated at ${TODAY},@copyright The XDoclet Team,@author XDoclet,@version ${version}” validating=”false” >

    <fileset dir=”src” includes=”**/*.java” >
    </fileset>
    <packageSubstitution packages=”ejb” substituteWith=”interfaces” >

    </packageSubstitution>
    <remoteinterface>
    </remoteinterface>
    <localinterface>
    </localinterface>
    <homeinterface>
    </homeinterface>
    <localhomeinterface>
    </localhomeinterface>
    <dataobject>
    </dataobject>
    <valueobject>
    </valueobject>
    <entitypk>
    </entitypk>
    <entitycmp>
    </entitycmp>
    <entitybmp>
    </entitybmp>
    <session>
    </session>
    <dao>
    <PackageSubstitution packages=”ejb” substituteWith=”dao” >
    </PackageSubstitution>
    </dao>
    <utilobject includeGUID=”true” cacheHomes=”true” >
    </utilobject>
    <deploymentdescriptor validateXML=”false” destDir=”src/META-INF” >
    </deploymentdescriptor>
    <jboss Version=”3.2″ validateXML=”false” destDir=”src/META-INF” >
    </jboss>
    </ejbdoclet></target>
    </project>

    #198553

    Scott Anderson
    Participant

    Adrian,

    Yes, it looks like you have XDoclet validation turned off.

    Refreshing: /xyz
    Validating /xyz/classes/../jboss.xml
    etc.

    “Refreshing” – is that after xdoclet has run and the workbench is doing somehing?

    When XDoclet runs, it creates a lot of new files in your project. ‘Refreshing’ the project is required to tell Eclipse about the new files. It’s just like if you added a file using the Explorer, outside Eclipse, into one of your project directories and then want to see it within Eclipse you’ll have to right-click on the project and select ‘Refresh’. While Eclipse updates its project information it also kicks off all the affected project builders. Our XML builder reports that it validating the descriptor files whenever it is ensuring that they are well-formed or they are valid. The XML builder always checks well-formedness since this is done with a fast SAX parse. True validation, against a DTD, can be turned off with the XML editor setting. So, when you edit or create a new descriptor you’ll always see the ‘validating’ message, even if the ‘validation’ is simply a well-formedness check.

    –Scott
    MyEclipse Support

    #198554

    But the validation takes 20 seconds for each xml file in class [META-INF] and src diretory – so it does seem to be still trying to get the DTD or something.

    Also just now I have found a log in the “about eclipse”, “configuration details” panal – lots of entries like:

    !ENTRY XMLBuilderPlugin 4 0 Sep 17, 2003 15:29:23.939
    !MESSAGE Connection timed out: connect
    !STACK 0
    java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.net.NetworkClient.doConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.<init>(Unknown Source)
    at sun.net.www.http.HttpClient.<init>(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at java.net.URL.openStream(Unknown Source)
    at org.apache.xerces.impl.XMLEntityManager.startEntity(XMLEntityManager.java:748)
    at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:708)
    at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:258)
    at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(XMLDocumentScannerImpl.java:833)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:333)
    at org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:525)
    at org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:581)
    at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:147)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1158)
    at com.genuitec.eclipse.j2eedt.core.builder.XMLResourceParser.parse(Unknown Source)
    at com.genuitec.eclipse.j2eedt.core.builder.XMLResourceParser.parse(Unknown Source)
    at com.genuitec.eclipse.j2eedt.core.builder.XMLValidationChecker.checkFile(Unknown Source)
    at com.genuitec.eclipse.j2eedt.core.builder.DeploymentDescriptorValidator.ā(Unknown Source)
    at com.genuitec.eclipse.j2eedt.core.builder.DeploymentDescriptorValidator.access$0(Unknown Source)
    at com.genuitec.eclipse.j2eedt.core.builder.DeploymentDescriptorValidator$A.visit(Unknown Source)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:71)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:52)
    at com.genuitec.eclipse.j2eedt.core.builder.DeploymentDescriptorValidator.ā(Unknown Source)
    at com.genuitec.eclipse.j2eedt.core.builder.DeploymentDescriptorValidator.build(Unknown Source)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:427)
    at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1015)
    at org.eclipse.core.runtime.Platform.run(Platform.java:420)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:125)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:181)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:191)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:151)
    at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1015)
    at org.eclipse.core.runtime.Platform.run(Platform.java:420)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:165)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:243)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:212)
    at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:884)
    at org.eclipse.core.internal.resources.Resource.refreshLocal(Resource.java:1160)
    at org.jboss.ide.eclipse.xdoclet.run.ui.actions.XDocletRunAction$1.run(XDocletRunAction.java:155)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:101)

    It seems to be trying to get something? What do you think?

    A.

    #198556

    Scott Anderson
    Participant

    Adrian,

    Yes, it’s definately trying to get to the DTD. Please verify your XML validation setting under Window > Preferences > MyEclipse > Editors > XML Editor.

    –Scott
    MyEclipse Support

    #198558

    Hi Scott,

    I have just re-checked it – it is definitly on “Disable Validation” …

    Adrian

    #198562

    Scott Anderson
    Participant

    Adrian,

    I dug into this deeper and verified that even though we’ve set up xerces not to validate when validation is turned off, it still attempts to load the remote DTD even though it correctly will not validate against it. I’ve opened it as an issue in our internal tracking system and we’ll address it in the next release. Thank you for bringing this to our attention. Sorry for the inconvenience.

    –Scott
    MyEclipse Support

    #198585

    Thanks!

    #198665

    rknabe
    Member

    A good workaround is to tell the java.net package about your proxy config.
    In {eclipse home}/.config/platform.cfg you can set java vm properties (same as passing on command line with -D).
    Add the following (with appropriate host,port}:
    http.proxyHost={proxy host}
    http.proxyPort={proxy port}

    #198666

    rknabe
    Member

    Sorry, I believe a better location to put the proxy config in would be the install.ini in eclipse home. The platform.cfg get re-generated on config change, which discards manual changes.

Viewing 11 posts - 1 through 11 (of 11 total)
Reply To: XML validation through a proxy [Enhancement]

You must be logged in to post in the forum log in