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>