Hi Andy, I've tried several permutations of the merged configuration file, but I can't get your new build of Fuseki to accept the config file. If you have some config file samples you'd like me to try, I'd be happy to do so since I have a server setup with a valid SSL cert (works fine with Jetty 9.3.x).
Jason On Thu, Sep 3, 2015 at 3:24 AM, Andy Seaborne <[email protected]> wrote: > The error: > >> java.lang.IllegalStateException: No Method: <Call >> name="addIfAbsentConnectionFactory"><Arg> >> <New class="org.eclipse.jetty.server.SslConnectionFactory"><Arg >> name="next">http/1.1</Arg><Arg name="sslContextFactory"><Ref >> refid="sslContextFactory"/></Arg></New> >> </Arg></Call> on class org.eclipse.jetty.server.Server > > says that the method addIfAbsentConnectionFactory is being called on Server. > Server does not have that method but there is one on Connector. > > Maybe some kind of alignment problem in the configuration file? > > Andy > > > On 02/09/15 23:39, Jason Levitt wrote: >> >> Below is the combined XML config file I'm trying to use. Fuseki (your >> Jetty v9.3.3 build) spits this error out (also below). >> The combined config files, separately, provide SSL fine in Jetty >> v9.3.3 but I can't get it to work in Fuseki. The only change I had to >> make, for XML >> syntax purposes, was changing: >> >> <Configure id="sslContextFactory" >> class="org.eclipse.jetty.util.ssl.SslContextFactory"> >> >> To this: >> >> <New id="sslContextFactory" >> class="org.eclipse.jetty.util.ssl.SslContextFactory"> >> >> ==================================== >> >> [2015-09-02 22:36:24] Server INFO Jetty server config file = >> /home/ec2-user/fuseki/jettyconfig/jettyall.xml >> [2015-09-02 22:36:24] XmlConfiguration WARN Config error at <Call >> name="addIfAbsentConnectionFactory"><Arg> >> <New class="org.eclipse.jetty.server.SslConnectionFactory"><Arg >> name="next">http/1.1</Arg><Arg name="sslContextFactory"><Ref >> refid="sslContextFactory"/></Arg></New> >> </Arg></Call> >> [2015-09-02 22:36:24] Server ERROR SPARQLServer: Failed to >> configure server: No Method: <Call >> name="addIfAbsentConnectionFactory"><Arg> >> <New class="org.eclipse.jetty.server.SslConnectionFactory"><Arg >> name="next">http/1.1</Arg><Arg name="sslContextFactory"><Ref >> refid="sslContextFactory"/></Arg></New> >> </Arg></Call> on class org.eclipse.jetty.server.Server >> java.lang.IllegalStateException: No Method: <Call >> name="addIfAbsentConnectionFactory"><Arg> >> <New class="org.eclipse.jetty.server.SslConnectionFactory"><Arg >> name="next">http/1.1</Arg><Arg name="sslContextFactory"><Ref >> refid="sslContextFactory"/></Arg></New> >> </Arg></Call> on class org.eclipse.jetty.server.Server >> at >> org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:734) >> at >> org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:417) >> at >> org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:300) >> at >> org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:245) >> at >> org.apache.jena.fuseki.jetty.JettyFuseki.configServer(JettyFuseki.java:265) >> at >> org.apache.jena.fuseki.jetty.JettyFuseki.buildServerWebapp(JettyFuseki.java:222) >> at org.apache.jena.fuseki.jetty.JettyFuseki.<init>(JettyFuseki.java:91) >> at >> org.apache.jena.fuseki.jetty.JettyFuseki.initializeServer(JettyFuseki.java:86) >> at >> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.exec(FusekiCmd.java:335) >> at jena.cmd.CmdMain.mainMethod(CmdMain.java:93) >> at jena.cmd.CmdMain.mainRun(CmdMain.java:58) >> at jena.cmd.CmdMain.mainRun(CmdMain.java:45) >> at >> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.innerMain(FusekiCmd.java:96) >> at org.apache.jena.fuseki.cmd.FusekiCmd.main(FusekiCmd.java:59) >> Caused by: java.lang.NoSuchMethodException: addIfAbsentConnectionFactory >> at org.eclipse.jetty.util.TypeUtil.call(TypeUtil.java:552) >> at >> org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:726) >> ... 13 more >> org.apache.jena.fuseki.FusekiException: Failed to configure a server >> using configuration file >> '/home/ec2-user/fuseki/jettyconfig/jettyall.xml' >> at >> org.apache.jena.fuseki.jetty.JettyFuseki.configServer(JettyFuseki.java:269) >> at >> org.apache.jena.fuseki.jetty.JettyFuseki.buildServerWebapp(JettyFuseki.java:222) >> at org.apache.jena.fuseki.jetty.JettyFuseki.<init>(JettyFuseki.java:91) >> at >> org.apache.jena.fuseki.jetty.JettyFuseki.initializeServer(JettyFuseki.java:86) >> at >> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.exec(FusekiCmd.java:335) >> at jena.cmd.CmdMain.mainMethod(CmdMain.java:93) >> at jena.cmd.CmdMain.mainRun(CmdMain.java:58) >> at jena.cmd.CmdMain.mainRun(CmdMain.java:45) >> at >> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.innerMain(FusekiCmd.java:96) >> at org.apache.jena.fuseki.cmd.FusekiCmd.main(FusekiCmd.java:59) >> >> ============================ >> >> jettyall.xml file: >> >> >> <?xml version="1.0"?> >> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" >> "http://www.eclipse.org/jetty/configure_9_3.dtd"> >> >> <Configure id="Server" class="org.eclipse.jetty.server.Server"> >> >> <Get name="ThreadPool"> >> <Set name="minThreads" type="int"><Property >> name="jetty.threadPool.minThreads" deprecated="threads.min" >> default="10"/></Set> >> <Set name="maxThreads" type="int"><Property >> name="jetty.threadPool.maxThreads" deprecated="threads.max" >> default="200"/></Set> >> <Set name="idleTimeout" type="int"><Property >> name="jetty.threadPool.idleTimeout" deprecated="threads.timeout" >> default="60000"/></Set> >> <Set name="detailedDump">false</Set> >> </Get> >> >> <!-- =========================================================== --> >> <!-- Add shared Scheduler instance --> >> <!-- =========================================================== --> >> <Call name="addBean"> >> <Arg> >> <New >> class="org.eclipse.jetty.util.thread.ScheduledExecutorScheduler"/> >> </Arg> >> </Call> >> >> <!-- =========================================================== --> >> <!-- Http Configuration. --> >> <!-- This is a common configuration instance used by all --> >> <!-- connectors that can carry HTTP semantics (HTTP, HTTPS, etc.)--> >> <!-- It configures the non wire protocol aspects of the HTTP --> >> <!-- semantic. --> >> <!-- --> >> <!-- This configuration is only defined here and is used by --> >> <!-- reference from other XML files such as jetty-http.xml, --> >> <!-- jetty-https.xml and other configuration files which --> >> <!-- instantiate the connectors. --> >> <!-- --> >> <!-- Consult the javadoc of o.e.j.server.HttpConfiguration --> >> <!-- for all configuration that may be set here. --> >> <!-- =========================================================== --> >> <New id="httpConfig" >> class="org.eclipse.jetty.server.HttpConfiguration"> >> <Set name="secureScheme"><Property >> name="jetty.httpConfig.secureScheme" default="https" /></Set> >> <Set name="securePort"><Property >> name="jetty.httpConfig.securePort" deprecated="jetty.secure.port" >> default="8443" /></Set> >> <Set name="outputBufferSize"><Property >> name="jetty.httpConfig.outputBufferSize" >> deprecated="jetty.output.buffer.size" default="32768" /></Set> >> <Set name="outputAggregationSize"><Property >> name="jetty.httpConfig.outputAggregationSize" >> deprecated="jetty.output.aggregation.size" default="8192" /></Set> >> <Set name="requestHeaderSize"><Property >> name="jetty.httpConfig.requestHeaderSize" >> deprecated="jetty.request.header.size" default="8192" /></Set> >> <Set name="responseHeaderSize"><Property >> name="jetty.httpConfig.responseHeaderSize" >> deprecated="jetty.response.header.size" default="8192" /></Set> >> <Set name="sendServerVersion"><Property >> name="jetty.httpConfig.sendServerVersion" >> deprecated="jetty.send.server.version" default="true" /></Set> >> <Set name="sendDateHeader"><Property >> name="jetty.httpConfig.sendDateHeader" >> deprecated="jetty.send.date.header" default="false" /></Set> >> <Set name="headerCacheSize"><Property >> name="jetty.httpConfig.headerCacheSize" default="512" /></Set> >> <Set name="delayDispatchUntilContent"><Property >> name="jetty.httpConfig.delayDispatchUntilContent" >> deprecated="jetty.delayDispatchUntilContent" default="true"/></Set> >> <!-- Uncomment to enable handling of X-Forwarded- style headers >> <Call name="addCustomizer"> >> <Arg><New >> class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg> >> </Call> >> --> >> </New> >> >> <!-- =========================================================== --> >> <!-- Set the default handler structure for the Server --> >> <!-- A handler collection is used to pass received requests to --> >> <!-- both the ContextHandlerCollection, which selects the next --> >> <!-- handler by context path and virtual host, and the --> >> <!-- DefaultHandler, which handles any requests not handled by --> >> <!-- the context handlers. --> >> <!-- Other handlers may be added to the "Handlers" collection, --> >> <!-- for example the jetty-requestlog.xml file adds the --> >> <!-- RequestLogHandler after the default handler --> >> <!-- =========================================================== --> >> <Set name="handler"> >> <New id="Handlers" >> class="org.eclipse.jetty.server.handler.HandlerCollection"> >> <Set name="handlers"> >> <Array type="org.eclipse.jetty.server.Handler"> >> <Item> >> <New id="Contexts" >> class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/> >> </Item> >> <Item> >> <New id="DefaultHandler" >> class="org.eclipse.jetty.server.handler.DefaultHandler"/> >> </Item> >> </Array> >> </Set> >> </New> >> </Set> >> >> <!-- =========================================================== --> >> <!-- extra server options --> >> <!-- =========================================================== --> >> <Set name="stopAtShutdown"><Property >> name="jetty.server.stopAtShutdown" default="true"/></Set> >> <Set name="stopTimeout">5000</Set> >> <Set name="dumpAfterStart"><Property >> name="jetty.server.dumpAfterStart" deprecated="jetty.dump.start" >> default="false"/></Set> >> <Set name="dumpBeforeStop"><Property >> name="jetty.server.dumpBeforeStop" deprecated="jetty.dump.stop" >> default="false"/></Set> >> >> <!-- ============================================================= --> >> <!-- Configure the Jetty Server instance with an ID "Server" --> >> <!-- by adding a HTTP connector. --> >> <!-- This configuration must be used in conjunction with jetty.xml --> >> <!-- ============================================================= --> >> >> <!-- =========================================================== --> >> <!-- Add a HTTP Connector. --> >> <!-- Configure an o.e.j.server.ServerConnector with a single --> >> <!-- HttpConnectionFactory instance using the common httpConfig --> >> <!-- instance defined in jetty.xml --> >> <!-- --> >> <!-- Consult the javadoc of o.e.j.server.ServerConnector and --> >> <!-- o.e.j.server.HttpConnectionFactory for all configuration --> >> <!-- that may be set here. --> >> <!-- =========================================================== --> >> <Call name="addConnector"> >> <Arg> >> <New id="httpConnector" >> class="org.eclipse.jetty.server.ServerConnector"> >> <Arg name="server"><Ref refid="Server" /></Arg> >> <Arg name="acceptors" type="int"><Property >> name="jetty.http.acceptors" deprecated="http.acceptors" >> default="-1"/></Arg> >> <Arg name="selectors" type="int"><Property >> name="jetty.http.selectors" deprecated="http.selectors" >> default="-1"/></Arg> >> <Arg name="factories"> >> <Array type="org.eclipse.jetty.server.ConnectionFactory"> >> <!-- uncomment to support proxy protocol >> <Item> >> <New >> class="org.eclipse.jetty.server.ProxyConnectionFactory"/> >> </Item>--> >> <Item> >> <New >> class="org.eclipse.jetty.server.HttpConnectionFactory"> >> <Arg name="config"><Ref refid="httpConfig" /></Arg> >> </New> >> </Item> >> </Array> >> </Arg> >> <Set name="host"><Property name="jetty.http.host" >> deprecated="jetty.host" /></Set> >> <Set name="port"><Property name="jetty.http.port" >> deprecated="jetty.port" default="8080" /></Set> >> <Set name="idleTimeout"><Property >> name="jetty.http.idleTimeout" deprecated="http.timeout" >> default="30000"/></Set> >> <Set name="soLingerTime"><Property >> name="jetty.http.soLingerTime" deprecated="http.soLingerTime" >> default="-1"/></Set> >> <Set name="acceptorPriorityDelta"><Property >> name="jetty.http.acceptorPriorityDelta" >> deprecated="http.acceptorPriorityDelta" default="0"/></Set> >> <Set name="acceptQueueSize"><Property >> name="jetty.http.acceptQueueSize" deprecated="http.acceptQueueSize" >> default="0"/></Set> >> </New> >> </Arg> >> </Call> >> >> <!-- ============================================================= --> >> <!-- Configure a HTTPS connector. --> >> <!-- This configuration must be used in conjunction with jetty.xml --> >> <!-- and jetty-ssl.xml. --> >> <!-- ============================================================= --> >> >> <Call name="addIfAbsentConnectionFactory"> >> <Arg> >> <New class="org.eclipse.jetty.server.SslConnectionFactory"> >> <Arg name="next">http/1.1</Arg> >> <Arg name="sslContextFactory"><Ref >> refid="sslContextFactory"/></Arg> >> </New> >> </Arg> >> </Call> >> >> <Call name="addConnectionFactory"> >> <Arg> >> <New class="org.eclipse.jetty.server.HttpConnectionFactory"> >> <Arg name="config"><Ref refid="sslHttpConfig" /></Arg> >> </New> >> </Arg> >> </Call> >> >> >> <!-- ============================================================= --> >> <!-- Base SSL configuration --> >> <!-- This configuration needs to be used together with 1 or more --> >> <!-- of jetty-https.xml or jetty-http2.xml --> >> <!-- ============================================================= --> >> >> <!-- =========================================================== --> >> <!-- Add a SSL Connector with no protocol factories --> >> <!-- =========================================================== --> >> <Call name="addConnector"> >> <Arg> >> <New id="sslConnector" >> class="org.eclipse.jetty.server.ServerConnector"> >> <Arg name="server"><Ref refid="Server" /></Arg> >> <Arg name="acceptors" type="int"><Property >> name="jetty.ssl.acceptors" deprecated="ssl.acceptors" >> default="-1"/></Arg> >> <Arg name="selectors" type="int"><Property >> name="jetty.ssl.selectors" deprecated="ssl.selectors" >> default="-1"/></Arg> >> <Arg name="factories"> >> <Array type="org.eclipse.jetty.server.ConnectionFactory"> >> <!-- uncomment to support proxy protocol >> <Item> >> <New >> class="org.eclipse.jetty.server.ProxyConnectionFactory"/> >> </Item>--> >> </Array> >> </Arg> >> >> <Set name="host"><Property name="jetty.ssl.host" >> deprecated="jetty.host" /></Set> >> <Set name="port"><Property name="jetty.ssl.port" >> deprecated="ssl.port" default="8443" /></Set> >> <Set name="idleTimeout"><Property name="jetty.ssl.idleTimeout" >> deprecated="ssl.timeout" default="30000"/></Set> >> <Set name="soLingerTime"><Property >> name="jetty.ssl.soLingerTime" deprecated="ssl.soLingerTime" >> default="-1"/></Set> >> <Set name="acceptorPriorityDelta"><Property >> name="jetty.ssl.acceptorPriorityDelta" >> deprecated="ssl.acceptorPriorityDelta" default="0"/></Set> >> <Set name="acceptQueueSize"><Property >> name="jetty.ssl.acceptQueueSize" deprecated="ssl.acceptQueueSize" >> default="0"/></Set> >> </New> >> </Arg> >> </Call> >> >> <!-- =========================================================== --> >> <!-- Create a TLS specific HttpConfiguration based on the --> >> <!-- common HttpConfiguration defined in jetty.xml --> >> <!-- Add a SecureRequestCustomizer to extract certificate and --> >> <!-- session information --> >> <!-- =========================================================== --> >> <New id="sslHttpConfig" >> class="org.eclipse.jetty.server.HttpConfiguration"> >> <Arg><Ref refid="httpConfig"/></Arg> >> <Call name="addCustomizer"> >> <Arg> >> <New class="org.eclipse.jetty.server.SecureRequestCustomizer"> >> <Arg type="boolean"><Property name="jetty.ssl.sniHostCheck" >> default="true"/></Arg> >> </New> >> </Arg> >> </Call> >> </New> >> >> <!-- ============================================================= --> >> <!-- SSL ContextFactory configuration --> >> <!-- ============================================================= --> >> <!-- Configure id="sslContextFactory" >> class="org.eclipse.jetty.util.ssl.SslContextFactory" --> >> >> <New id="sslContextFactory" >> class="org.eclipse.jetty.util.ssl.SslContextFactory"> >> <Set name="KeyStorePath"><Property name="jetty.base" default="." >> />/<Property name="jetty.sslContext.keyStorePath" >> deprecated="jetty.keystore" default="etc/keystore"/></Set> >> <Set name="KeyStorePassword"><Property >> name="jetty.sslContext.keyStorePassword" >> deprecated="jetty.keystore.password" default="MyPassword" /></Set> >> <Set name="KeyStoreType"><Property >> name="jetty.sslContext.keyStoreType" default="JKS"/></Set> >> <Set name="KeyStoreProvider"><Property >> name="jetty.sslContext.keyStoreProvider"/></Set> >> <Set name="KeyManagerPassword"><Property >> name="jetty.sslContext.keyManagerPassword" >> deprecated="jetty.keymanager.password" default="MyPassword" /></Set> >> <Set name="TrustStorePath"><Property name="jetty.base" default="." >> />/<Property name="jetty.sslContext.trustStorePath" >> deprecated="jetty.truststore" default="etc/keystore"/></Set> >> <Set name="TrustStorePassword"><Property >> name="jetty.sslContext.trustStorePassword" >> deprecated="jetty.truststore.password" default="MyPassword" /></Set> >> <Set name="TrustStoreType"><Property >> name="jetty.sslContext.trustStoreType" default="JKS"/></Set> >> <Set name="TrustStoreProvider"><Property >> name="jetty.sslContext.trustStoreProvider"/></Set> >> <Set name="EndpointIdentificationAlgorithm"></Set> >> <Set name="NeedClientAuth"><Property >> name="jetty.sslContext.needClientAuth" >> deprecated="jetty.ssl.needClientAuth" default="false"/></Set> >> <Set name="WantClientAuth"><Property >> name="jetty.sslContext.wantClientAuth" >> deprecated="jetty.ssl.wantClientAuth" default="false"/></Set> >> <Set name="ExcludeCipherSuites"> >> <Array type="String"> >> <Item>SSL_RSA_WITH_DES_CBC_SHA</Item> >> <Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item> >> <Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item> >> <Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item> >> <Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item> >> <Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item> >> <Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item> >> </Array> >> </Set> >> <Set name="useCipherSuitesOrder"><Property >> name="jetty.sslContext.useCipherSuitesOrder" default="true"/></Set> >> </New> >> >> </Configure> >> >> =================================== >> >> On Wed, Sep 2, 2015 at 2:46 PM, Jason Levitt <[email protected]> >> wrote: >>> >>> I can get Jetty 9.3.3 to work over SSL with these four files, but I >>> cannot figure out a way to >>> put them into one file (required by fuseki) to get SSL working with >>> fuseki: >>> >>> jetty.xml >>> >>> <?xml version="1.0"?> >>> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" >>> "http://www.eclipse.org/jetty/configure_9_3.dtd"> >>> >>> <Configure id="Server" class="org.eclipse.jetty.server.Server"> >>> >>> <New id="httpConfig" >>> class="org.eclipse.jetty.server.HttpConfiguration"> >>> <Set name="secureScheme"><Property >>> name="jetty.httpConfig.secureScheme" default="https" /></Set> >>> <Set name="securePort"><Property >>> name="jetty.httpConfig.securePort" deprecated="jetty.secure.port" >>> default="8443" /></Set> >>> <Set name="outputBufferSize"><Property >>> name="jetty.httpConfig.outputBufferSize" >>> deprecated="jetty.output.buffer.size" default="32768" /></Set> >>> <Set name="outputAggregationSize"><Property >>> name="jetty.httpConfig.outputAggregationSize" >>> deprecated="jetty.output.aggregation.size" default="8192" /></Set> >>> <Set name="requestHeaderSize"><Property >>> name="jetty.httpConfig.requestHeaderSize" >>> deprecated="jetty.request.header.size" default="8192" /></Set> >>> <Set name="responseHeaderSize"><Property >>> name="jetty.httpConfig.responseHeaderSize" >>> deprecated="jetty.response.header.size" default="8192" /></Set> >>> <Set name="sendServerVersion"><Property >>> name="jetty.httpConfig.sendServerVersion" >>> deprecated="jetty.send.server.version" default="true" /></Set> >>> <Set name="sendDateHeader"><Property >>> name="jetty.httpConfig.sendDateHeader" >>> deprecated="jetty.send.date.header" default="false" /></Set> >>> <Set name="headerCacheSize"><Property >>> name="jetty.httpConfig.headerCacheSize" default="512" /></Set> >>> <Set name="delayDispatchUntilContent"><Property >>> name="jetty.httpConfig.delayDispatchUntilContent" >>> deprecated="jetty.delayDispatchUntilContent" default="true"/></Set> >>> </New> >>> >>> </Configure> >>> >>> jetty-http.xml >>> >>> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" >>> "http://www.eclipse.org/jetty/configure_9_3.dtd"> >>> >>> <Call name="addConnector"> >>> <Arg> >>> <New id="httpConnector" >>> class="org.eclipse.jetty.server.ServerConnector"> >>> <Arg name="server"><Ref refid="Server" /></Arg> >>> <Arg name="acceptors" type="int"><Property >>> name="jetty.http.acceptors" deprecated="http.acceptors" >>> default="-1"/></Arg> >>> <Arg name="selectors" type="int"><Property >>> name="jetty.http.selectors" deprecated="http.selectors" >>> default="-1"/></Arg> >>> <Arg name="factories"> >>> <Array type="org.eclipse.jetty.server.ConnectionFactory"> >>> <!-- uncomment to support proxy protocol >>> <Item> >>> <New >>> class="org.eclipse.jetty.server.ProxyConnectionFactory"/> >>> </Item>--> >>> <Item> >>> <New >>> class="org.eclipse.jetty.server.HttpConnectionFactory"> >>> <Arg name="config"><Ref refid="httpConfig" /></Arg> >>> </New> >>> </Item> >>> </Array> >>> </Arg> >>> <Set name="host"><Property name="jetty.http.host" >>> deprecated="jetty.host" /></Set> >>> <Set name="port"><Property name="jetty.http.port" >>> deprecated="jetty.port" default="8080" /></Set> >>> <Set name="idleTimeout"><Property >>> name="jetty.http.idleTimeout" deprecated="http.timeout" >>> default="30000"/></Set> >>> <Set name="soLingerTime"><Property >>> name="jetty.http.soLingerTime" deprecated="http.soLingerTime" >>> default="-1"/></Set> >>> <Set name="acceptorPriorityDelta"><Property >>> name="jetty.http.acceptorPriorityDelta" >>> deprecated="http.acceptorPriorityDelta" default="0"/></Set> >>> <Set name="acceptQueueSize"><Property >>> name="jetty.http.acceptQueueSize" deprecated="http.acceptQueueSize" >>> default="0"/></Set> >>> </New> >>> </Arg> >>> </Call> >>> >>> </Configure> >>> >>> >>> jetty-https.xml >>> >>> <?xml version="1.0"?> >>> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" >>> "http://www.eclipse.org/jetty/configure_9_3.dtd"> >>> >>> <Configure id="sslConnector" >>> class="org.eclipse.jetty.server.ServerConnector"> >>> >>> <Call name="addIfAbsentConnectionFactory"> >>> <Arg> >>> <New class="org.eclipse.jetty.server.SslConnectionFactory"> >>> <Arg name="next">http/1.1</Arg> >>> <Arg name="sslContextFactory"><Ref >>> refid="sslContextFactory"/></Arg> >>> </New> >>> </Arg> >>> </Call> >>> >>> <Call name="addConnectionFactory"> >>> <Arg> >>> <New class="org.eclipse.jetty.server.HttpConnectionFactory"> >>> <Arg name="config"><Ref refid="sslHttpConfig" /></Arg> >>> </New> >>> </Arg> >>> </Call> >>> >>> </Configure> >>> >>> jetty-ssl-context.xml >>> >>> <?xml version="1.0"?> >>> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" >>> "http://www.eclipse.org/jetty/configure_9_3.dtd"> >>> >>> <Configure id="sslContextFactory" >>> class="org.eclipse.jetty.util.ssl.SslContextFactory"> >>> >>> <Set name="KeyStorePath"><Property name="jetty.base" default="." >>> />/<Property name="jetty.sslContext.keyStorePath" >>> deprecated="jetty.keystore" default="etc/keystore"/></Set> >>> <Set name="KeyStorePassword"><Property >>> name="jetty.sslContext.keyStorePassword" >>> deprecated="jetty.keystore.password" />MyPassword</Set> >>> <Set name="KeyStoreType"><Property >>> name="jetty.sslContext.keyStoreType" default="JKS"/></Set> >>> <Set name="KeyStoreProvider"><Property >>> name="jetty.sslContext.keyStoreProvider"/></Set> >>> <Set name="KeyManagerPassword"><Property >>> name="jetty.sslContext.keyManagerPassword" >>> deprecated="jetty.keymanager.password" />MyPassword</Set> >>> <Set name="TrustStorePath"><Property name="jetty.base" default="." >>> />/<Property name="jetty.sslContext.trustStorePath" >>> deprecated="jetty.truststore" default="etc/keystore"/></Set> >>> <Set name="TrustStorePassword"><Property >>> name="jetty.sslContext.trustStorePassword" >>> deprecated="jetty.truststore.password" />MyPassword</Set> >>> <Set name="TrustStoreType"><Property >>> name="jetty.sslContext.trustStoreType" default="JKS"/></Set> >>> <Set name="TrustStoreProvider"><Property >>> name="jetty.sslContext.trustStoreProvider"/></Set> >>> <Set name="EndpointIdentificationAlgorithm"></Set> >>> <Set name="NeedClientAuth"><Property >>> name="jetty.sslContext.needClientAuth" >>> deprecated="jetty.ssl.needClientAuth" default="false"/></Set> >>> <Set name="WantClientAuth"><Property >>> name="jetty.sslContext.wantClientAuth" >>> deprecated="jetty.ssl.wantClientAuth" default="false"/></Set> >>> <Set name="ExcludeCipherSuites"> >>> <Array type="String"> >>> <Item>SSL_RSA_WITH_DES_CBC_SHA</Item> >>> <Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item> >>> <Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item> >>> <Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item> >>> <Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item> >>> <Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item> >>> <Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item> >>> </Array> >>> </Set> >>> <Set name="useCipherSuitesOrder"><Property >>> name="jetty.sslContext.useCipherSuitesOrder" default="true"/></Set> >>> </Configure> >>> >>> ================ >>> >>> On Wed, Sep 2, 2015 at 8:18 AM, Andy Seaborne <[email protected]> wrote: >>>> >>>> Hi Jason, >>>> >>>> I have made some progress with your config. >>>> >>>> 1/ I switched the development code to 9.3.3 so we have one target and >>>> because I got that version to work with your config >>>> >>>> 9.3.3. was release 27/Aug/2015. >>>> >>>> Don't know if your working from the source or not so I did a development >>>> build of Fuseki2 with 9.3.3. >>>> >>>> >>>> https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena-fuseki/2.3.1-SNAPSHOT/ >>>> >>>> NB There are 2 builds for today - latest with Jetty 9.3.3 is >>>> >>>> 20150902.121407-19 >>>> >>>> 2/ Fix for your config file below. >>>> Needs some details from jetty.xml copied into it. >>>> >>>> Andy >>>> >>>> On 01/09/15 20:36, Jason Levitt wrote: >>>>> >>>>> >>>>> Back to square one. >>>>> >>>>> This Jetty config file works fine with Jetty 9: >>>> >>>> >>>> >>>> Which jetty version? I'm seeing differences between 9.1.1 and 9.3.3 >>>> >>>> With 9.3.2 I get a different error, more useful error (yes, I was using >>>> 9.3.2 at that point) >>>> >>>> [2015-09-02 12:24:37] Server ERROR SPARQLServer: Failed to configure >>>> server: null >>>> java.lang.reflect.InvocationTargetException >>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) >>>> >>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) >>>> >>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) >>>> java.lang.reflect.Constructor.newInstance(Constructor.java:422) >>>> org.eclipse.jetty.util.TypeUtil.construct(TypeUtil.java:627) >>>> >>>> org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:782) >>>> >>>> which looks to be caused by: >>>> >>>>> <New class="org.eclipse.jetty.server.HttpConnectionFactory"> >>>>> <Arg name="config"><Ref refid="httpConfig" /></Arg> >>>>> </New> >>>> >>>> >>>> and httpConfig is not defined. (I debug traced the Jetty code). >>>> >>>> It says higher up: >>>> >>>> <!-- HttpConnectionFactory instance using the common httpConfig --> >>>> <!-- instance defined in jetty.xml >>>> >>>> >>>> I copied the block from jetty.xml 9.3.3 into you configuration: >>>> <New id="httpConfig" >>>> </New> >>>> >>>> Full copy below. >>>> >>>> This is for 9.3.3 only - I tried the same approach with 9.1.1 and it >>>> didn't >>>> work. Maybe my user error, maybe because your config makes a 9.3 >>>> specific >>>> call. Rather than worry about that, I switched the development code >>>> base to >>>> 9.3.3. >>>> >>>> Hey presto - server runs for me. Confirmed it is using the config by >>>> changing the port but that's all the testing I have time for ATM. >>>> (Looking >>>> for a job (= employment) can be quite time consuming!) >>>> >>>> Andy >>>> >>>> >>>> ------------------------------------------------------------ >>>> Copy of new section, reformatted for email :-| , inserted before <Call> >>>> >>>> <Configure id="Server" class="org.eclipse.jetty.server.Server"> >>>> <New >>>> .... >>>> </New> >>>> >>>> <Call name="addConnector"> >>>> </Call> >>>> >>>> >>>> </Configure> >>>> >>>> --------- Full insert >>>> >>>> >>>> <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration"> >>>> <Set name="secureScheme"> >>>> <Property name="jetty.httpConfig.secureScheme" >>>> default="https" /> >>>> </Set> >>>> <Set name="securePort"> >>>> <Property name="jetty.httpConfig.securePort" >>>> deprecated="jetty.secure.port" >>>> default="8443" /> >>>> </Set> >>>> <Set name="outputBufferSize"> >>>> <Property name="jetty.httpConfig.outputBufferSize" >>>> deprecated="jetty.output.buffer.size" >>>> default="32768" /> >>>> </Set> >>>> <Set name="outputAggregationSize"> >>>> <Property name="jetty.httpConfig.outputAggregationSize" >>>> deprecated="jetty.output.aggregation.size" >>>> default="8192" /> >>>> </Set> >>>> <Set name="requestHeaderSize"> >>>> <Property name="jetty.httpConfig.requestHeaderSize" >>>> deprecated="jetty.request.header.size" >>>> default="8192" /> >>>> </Set> >>>> <Set name="responseHeaderSize"> >>>> <Property name="jetty.httpConfig.responseHeaderSize" >>>> deprecated="jetty.response.header.size" >>>> default="8192" /> >>>> </Set> >>>> <Set name="sendServerVersion"> >>>> <Property name="jetty.httpConfig.sendServerVersion" >>>> deprecated="jetty.send.server.version" >>>> default="true" /> >>>> </Set> >>>> <Set name="sendDateHeader"> >>>> <Property name="jetty.httpConfig.sendDateHeader" >>>> deprecated="jetty.send.date.header" >>>> default="false" /> >>>> </Set> >>>> <Set name="headerCacheSize"> >>>> <Property name="jetty.httpConfig.headerCacheSize" >>>> default="512" /> >>>> </Set> >>>> <Set name="delayDispatchUntilContent"> >>>> <Property name="jetty.httpConfig.delayDispatchUntilContent" >>>> deprecated="jetty.delayDispatchUntilContent" >>>> default="true"/> >>>> </Set> >>>> <Set name="maxErrorDispatches"> >>>> <Property name="jetty.httpConfig.maxErrorDispatches" >>>> default="10"/> >>>> </Set> >>>> <!-- Uncomment to enable handling of X-Forwarded- style headers >>>> <Call name="addCustomizer"> >>>> <Arg><New >>>> class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg> >>>> </Call> >>>> --> >>>> </New> >>>> >
