<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:16:19 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[NETCONF-953] Unable to load org.eclipse.jetty.websocket.server.WebSocketServerFactory</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-953</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;ol&gt;
	&lt;li&gt;Run Karaf and install odl-netconf-topology and odl-restconf-nb features&lt;/li&gt;
	&lt;li&gt;Change use SSE setting to use-sse=false in restconf-nb-(5.0.2-SNAPSHOT)-config.cfg&lt;/li&gt;
	&lt;li&gt;Run Postman collection requests #1 and #2 to create data change event subscription.&lt;/li&gt;
	&lt;li&gt;In Linux command line run: wscat --header &quot;Authorization: Basic YWRtaW46YWRtaW4=&quot; -c ws://localhost:8181/rests/data-change-event-subscription/network-topology:network-topology/datastore=CONFIGURATION/scope=SUBTREE&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;You will get response 500, see attached karaf.log.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="36652">NETCONF-953</key>
            <summary>Unable to load org.eclipse.jetty.websocket.server.WebSocketServerFactory</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.opendaylight.org/images/icons/priorities/blocker.svg">Highest</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="rkashapov">Ruslan Kashapov</assignee>
                                    <reporter username="ivanhrasko">Ivan Hrasko</reporter>
                        <labels>
                            <label>pt</label>
                            <label>regression</label>
                    </labels>
                <created>Wed, 8 Feb 2023 13:14:06 +0000</created>
                <updated>Sun, 26 Feb 2023 13:43:20 +0000</updated>
                            <resolved>Sun, 26 Feb 2023 13:42:19 +0000</resolved>
                                                    <fixVersion>4.0.6</fixVersion>
                    <fixVersion>5.0.3</fixVersion>
                                    <component>restconf-nb</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="71978" author="rovarga" created="Thu, 9 Feb 2023 23:52:29 +0000"  >&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Hmm:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.websocket.server.WebSocketServerFactory cannot be found by org.opendaylight.netconf.restconf-nb_5.0.2.SNAPSHOT
&#160; &#160; at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:541) ~[?:?]
&#160; &#160; at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:536) ~[?:?]
&#160; &#160; at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416) ~[?:?]
&#160; &#160; at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168) ~[?:?]
&#160; &#160; at java.lang.&lt;span class=&quot;code-object&quot;&gt;ClassLoader&lt;/span&gt;.loadClass(&lt;span class=&quot;code-object&quot;&gt;ClassLoader&lt;/span&gt;.java:520) ~[?:?]
&#160; &#160; at java.lang.&lt;span class=&quot;code-object&quot;&gt;Class&lt;/span&gt;.forName0(Native Method) ~[?:?]
&#160; &#160; at java.lang.&lt;span class=&quot;code-object&quot;&gt;Class&lt;/span&gt;.forName(&lt;span class=&quot;code-object&quot;&gt;Class&lt;/span&gt;.java:467) ~[?:?]
&#160; &#160; at org.eclipse.jetty.websocket.servlet.WebSocketServletFactory$Loader.load(WebSocketServletFactory.java:48) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; ... 36 more&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;in the context of:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;java.lang.RuntimeException: Unable to load org.eclipse.jetty.websocket.server.WebSocketServerFactory
&#160; &#160; at org.eclipse.jetty.websocket.servlet.WebSocketServletFactory$Loader.load(WebSocketServletFactory.java:54) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.websocket.servlet.WebSocketServlet.init(WebSocketServlet.java:140) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at javax.servlet.GenericServlet.init(GenericServlet.java:180) ~[bundleFile:4.0.4]
&#160; &#160; at org.ops4j.pax.web.service.spi.servlet.OsgiInitializedServlet.init(OsgiInitializedServlet.java:68) ~[bundleFile:?]
&#160; &#160; at org.eclipse.jetty.servlet.ServletHolder$Wrapper.init(ServletHolder.java:1345) ~[bundleFile:9.4.50.v20221201]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;feels like a Jetty-side issue in OSGi context: Class.forName() is run-of-the mill instantiation. If jetty.websocket.server wants to be found by that call, it should be attaching as a fragment to jetty.websocket.server.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;On the other hand, restconf-nb is the context bundle and hence it should be doing one of:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Import-Package org.eclipse.jetty.websocket.server.WebSocketServerFactory&lt;/li&gt;
	&lt;li&gt;Dynamic-Import-Package org.eclipse.jetty.websocket.server.WebSocketServerFactory&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Since this is static wiring, we should be okay with former, as it should be immediately satisfied.&lt;/p&gt;

&lt;p&gt;Still on the first hand &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;, RESTCONF as such should not care about Jetty (or Undertow, or whatever), really, but I do not remember how well that works in practice.&lt;/p&gt;</comment>
                            <comment id="72014" author="JIRAUSER13216" created="Wed, 15 Feb 2023 14:43:52 +0000"  >&lt;p&gt;issue is caused by unsatisfied dependency on jetty&apos;s websocket-server bundle, &lt;br/&gt;
it was expected to be dynamically imported (via websocket-servlet manifest).&lt;br/&gt;
Explicit definition of restconf-nb bundle dependency on websocket-servlet fixes the case.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="36716">NETCONF-970</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28719">NETCONF-483</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="18509" name="Streaming RFC 8040.postman_collection.json" size="2765" author="ivanhrasko" created="Wed, 8 Feb 2023 13:15:25 +0000"/>
                            <attachment id="18508" name="karaf.log" size="15571" author="ivanhrasko" created="Wed, 8 Feb 2023 13:15:13 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i0448f:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>