Саксонские метания java.net.SocketException: - PullRequest
0 голосов
/ 15 августа 2011

Ubuntu 10.4 JRE 1.6.0_26
SaxonHE9.3.0.5

У меня есть очень простой скрипт, который извлекает текстовое содержимое из действительного html-файла

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:html="http://www.w3.org/1999/html"
      version="2.0">
    <xsl:output method="text" encoding="utf-8"/>
</xsl:stylesheet>

, запускающего этотскрипт в Oxygen выдает ожидаемый результат.

запускать это на том же ПК в командной строке, используя ту же версию java и saxon, как и

java -jar lib / saxonHE-9.3.0.5.jar -o: build / etemp/html_1.txt -s: build / ebook / epub_sh-tei.html -xsl: xslt / htm2text.xsl

выдает следующую ошибку

Ошибка java.net.SocketException:Неожиданный конец файла с сервера Преобразование не выполнено: были обнаружены ошибки времени выполнения

ниже приведен подробный вывод из java

 [Loaded net.sf.saxon.tinytree.TinyProcInstImpl from file:/home/scott/workspace/books_changes2/lib/saxonHE-9.3.0.5.jar]
[Loaded net.sf.saxon.tinytree.LargeStringBuffer from file:/home/scott/workspace/books_changes2/lib/saxonHE-9.3.0.5.jar]
[Loaded java.lang.ArrayIndexOutOfBoundsException from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded com.sun.org.apache.xerces.internal.impl.io.ASCIIReader from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded com.sun.org.apache.xerces.internal.impl.validation.EntityState from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded com.sun.org.apache.xerces.internal.xni.grammars.Grammar from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded com.sun.org.apache.xerces.internal.impl.dtd.DTDGrammar from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded com.sun.org.apache.xerces.internal.impl.dtd.models.ContentModelValidator from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded com.sun.org.apache.xerces.internal.impl.dtd.DTDGrammar$QNameHashtable from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded com.sun.org.apache.xerces.internal.impl.dtd.XMLContentSpec from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded com.sun.xml.internal.stream.StaxXMLInputSource from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.Handler from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.HttpURLConnection from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.logging.Logger from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.logging.Handler from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.logging.Level from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.logging.LogManager from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.logging.LogManager$1 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.beans.PropertyChangeSupport from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.logging.LogManager$LogNode from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.logging.LoggingPermission from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.logging.LogManager$Cleaner from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.lang.ApplicationShutdownHooks from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.lang.ApplicationShutdownHooks$1 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.lang.Shutdown from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.lang.Shutdown$Lock from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.IdentityHashMap from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.logging.LogManager$RootLogger from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.logging.LogManager$2 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.Hashtable$Enumerator from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.EventObject from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.beans.PropertyChangeEvent from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.logging.LogManager$3 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.security.action.GetIntegerAction from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.AuthCacheValue from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.AuthenticationInfo from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.NTLMAuthentication from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.AuthCache from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.AuthCacheImpl from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.NTLMAuthenticationCallback from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.NTLMAuthenticationCallback$DefaultNTLMAuthenticationCallback from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.NTLMAuthentication$1 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.HttpURLConnection$TunnelState from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.HttpURLConnection$2 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.CookieHandler from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.HttpURLConnection$3 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.ResponseCache from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded com.sun.org.apache.xerces.internal.util.HTTPInputSource from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.protocol.http.HttpURLConnection$5 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.ProxySelector from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.spi.DefaultProxySelector from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.spi.DefaultProxySelector$1 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.NetProperties from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.NetProperties$1 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.spi.DefaultProxySelector$NonProxyInfo from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.spi.DefaultProxySelector$2 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.spi.DefaultProxySelector$3 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.Proxy from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.Proxy$Type from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.NetworkClient from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.http.HttpClient from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.NetworkClient$1 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.http.KeepAliveCache from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.http.HttpClient$1 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.http.HttpClient$2 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.http.KeepAliveKey from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.www.http.HttpClient$3 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.Socket from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.SocksConsts from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.SocketOptions from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.SocketImpl from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.PlainSocketImpl from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.SocksSocketImpl from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.security.action.LoadLibraryAction from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.SocketAddress from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.InetSocketAddress from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.InetAddress from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.InetAddress$Cache from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.InetAddress$Cache$Type from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.InetAddressImplFactory from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.InetAddressImpl from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.Inet6AddressImpl from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.spi.nameservice.NameService from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.InetAddress$1 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.Inet4AddressImpl from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.Inet4Address from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.InetAddressCachePolicy from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.InetAddressCachePolicy$1 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded sun.net.InetAddressCachePolicy$2 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.Queue from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.Deque from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.AbstractSequentialList from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.LinkedList from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.LinkedList$Entry from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.LinkedHashMap$KeyIterator from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.LinkedList$ListItr from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.InetAddress$CacheEntry from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.Inet6Address from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.SocketException from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.SocksSocketImpl$5 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.Socket$3 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.SocketOutputStream from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.Socket$2 from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.SocketInputStream from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.io.InterruptedIOException from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.net.SocketTimeoutException from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.io.EOFException from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded com.sun.org.apache.xerces.internal.xni.parser.XMLParseException from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
Error 
  java.net.SocketException: Unexpected end of file from server
Transformation failed: Run-time errors were reported
[Loaded java.util.IdentityHashMap$KeySet from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.IdentityHashMap$IdentityHashMapIterator from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]
[Loaded java.util.IdentityHashMap$KeyIterator from /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/rt.jar]

Ответы [ 2 ]

1 голос
/ 17 августа 2011

Для тех, кто ищет ответ:

Ответ на этот вопрос состоял в том, что парсер пытался получить html dtd отсюда http://www.w3.org/1999/html, как указано в таблице стилей.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:html="http://www.w3.org/1999/html"
      version="2.0">
    <xsl:output method="text" encoding="utf-8"/>
</xsl:stylesheet>

W3 игнорировал запрос и java выдал исключение.Парсер не дал никаких указаний на то, что он запрашивал dtd или что он не получил dtd.Оставить пользователя во тьме, почему преобразование не удалось.Очень плохое поведение для парсера!

Решение состояло в том, чтобы сказать парсеру использовать локальное dtd через каталог, подобный так, это из сценария ant:

<macrodef name="saxon_use_catalog">
    <attribute name="input"/>
    <attribute name="stylesheet"/>
    <attribute name="output"/>
    <sequential>
        <echo>Transforming @{input} to @{output} using @{stylesheet} </echo>
        <java classname="net.sf.saxon.Transform" fork="true" failonerror="true">
            <jvmarg value="-Dxml.catalog.files=lib/xhtml11/dtd/xhtmlcatalog.xml" />
            <classpath>
                <pathelement location="lib/saxonHE-9.3.0.5.jar"/>
                <pathelement location="lib/resolver.jar"/>
                <pathelement location="lib/xhtml11/dtd/xhtmlcatalog.xml"/>
            </classpath>
            <arg value="-r:org.apache.xml.resolver.tools.CatalogResolver"/>
            <arg value="-x:org.apache.xml.resolver.tools.ResolvingXMLReader"/>
            <arg value="-y:org.apache.xml.resolver.tools.ResolvingXMLReader"/>
            <arg value="-s:@{input}"/>
            <arg value="-xsl:@{stylesheet}"/>
            <arg value="-o:@{output}"/>
        </java>
    </sequential>
</macrodef>

Jar и каталог, который я использовал, были упакованыс кислородом.

Скотт

1 голос
/ 16 августа 2011

Пожалуйста, не задавайте один и тот же вопрос на каждом форуме, о котором вы только можете подумать.Выберите наиболее подходящий, спросите там, и поверните в другое место, только если вы не получили ответа.Спрашивать в разных местах - это тратить время на людей, которые добровольно помогают вам, потому что они не видят, что на этот вопрос уже был дан ответ в другом месте.Понижение вопроса по этой причине.

...