Not running on Jetty, JSR-356 support unavailable

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Not running on Jetty, JSR-356 support unavailable

Naveen Kumar
I am trying to upgrade ActiveMQ jar to its latest version. It requires me
to upgrade Jetty to 9.4 version.
I have current setup as Tomcat 9 + ActiveMQ 5.12 + jetty-all-8.1.
I want to upgrade it as Tomcat 9 + ActiveMQ 5.15 + jetty-all-9.4.

After doing the changes when I try to start tomcat, it gives me below error:

javax.servlet.ServletException: Not running on Jetty, JSR-356 support
unavailable
    at
org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer.onStartup(WebSocketServerContainerInitializer.java:200)
    at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5125)

It looks like Jetty 9.4 has JSR-356 implementation and it is conflicting
with Tomcat.
Can someone please help to fix this ?

Thanks
Naveen
Reply | Threaded
Open this post in threaded view
|

Re: Not running on Jetty, JSR-356 support unavailable

jbonofre
Hi Naveen

Are you integrated in Tomcat with RAR or you just start ActiveMQ by
"code" (BrokerService) ?

Regards
JB

On 22/11/2019 11:52, Naveen Kumar wrote:

> I am trying to upgrade ActiveMQ jar to its latest version. It requires me
> to upgrade Jetty to 9.4 version.
> I have current setup as Tomcat 9 + ActiveMQ 5.12 + jetty-all-8.1.
> I want to upgrade it as Tomcat 9 + ActiveMQ 5.15 + jetty-all-9.4.
>
> After doing the changes when I try to start tomcat, it gives me below error:
>
> javax.servlet.ServletException: Not running on Jetty, JSR-356 support
> unavailable
>     at
> org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer.onStartup(WebSocketServerContainerInitializer.java:200)
>     at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5125)
>
> It looks like Jetty 9.4 has JSR-356 implementation and it is conflicting
> with Tomcat.
> Can someone please help to fix this ?
>
> Thanks
> Naveen
>

--
Jean-Baptiste Onofré
[hidden email]
http://blog.nanthrax.net
Talend - http://www.talend.com
Reply | Threaded
Open this post in threaded view
|

Re: Not running on Jetty, JSR-356 support unavailable

Naveen Kumar
Hi JB,

I am starting it from code using brokerservice.

Thanks
Naveen



--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
Reply | Threaded
Open this post in threaded view
|

Re: Not running on Jetty, JSR-356 support unavailable

Naveen Kumar
As per the below post at Jetty, the jar jetty-all should not be used by any
other projects.
https://www.eclipse.org/lists/jetty-users/msg06030.html
Can someone please help to confirm if my understanding is correct that
activemq-all-5.15.10.jar has a dependency on
jetty-all-9.4.19.v20190610-uber.jar ?

Thanks
Naveen



--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
Reply | Threaded
Open this post in threaded view
|

Re: Not running on Jetty, JSR-356 support unavailable

jbonofre
Hi,

ActiveMQ 5.15.11 uses Jetty 9.4.22, using jetty-all artifact.

It's just fine for ActiveMQ standalone. Anyway, I will improve (mostly
to reduce the Jetty deps volume).

If you use ActiveMQ in Karaf, you don't have the issue as Jetty
artifacts are already provided by Karaf.

I created https://issues.apache.org/jira/browse/AMQ-7358 to do the
change for 5.16.0.

Regards
JB

On 29/11/2019 06:48, Naveen Kumar wrote:

> As per the below post at Jetty, the jar jetty-all should not be used by any
> other projects.
> https://www.eclipse.org/lists/jetty-users/msg06030.html
> Can someone please help to confirm if my understanding is correct that
> activemq-all-5.15.10.jar has a dependency on
> jetty-all-9.4.19.v20190610-uber.jar ?
>
> Thanks
> Naveen
>
>
>
> --
> Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>

--
Jean-Baptiste Onofré
[hidden email]
http://blog.nanthrax.net
Talend - http://www.talend.com
Reply | Threaded
Open this post in threaded view
|

Re: Not running on Jetty, JSR-356 support unavailable

Naveen Kumar
Hi JB,

Thanks for the quick response. Is there any way I can fix the existing
problem of JSR-356 conflicts with tomcat ?
I can see something related to this was mentioned here
http://activemq.apache.org/tomcat.html and
https://issues.apache.org/jira/browse/AMQ-6154
But somehow it didn't help me.

Thanks
Naveen

On Fri, Nov 29, 2019 at 11:53 AM Jean-Baptiste Onofré <[hidden email]>
wrote:

> Hi,
>
> ActiveMQ 5.15.11 uses Jetty 9.4.22, using jetty-all artifact.
>
> It's just fine for ActiveMQ standalone. Anyway, I will improve (mostly
> to reduce the Jetty deps volume).
>
> If you use ActiveMQ in Karaf, you don't have the issue as Jetty
> artifacts are already provided by Karaf.
>
> I created https://issues.apache.org/jira/browse/AMQ-7358 to do the
> change for 5.16.0.
>
> Regards
> JB
>
> On 29/11/2019 06:48, Naveen Kumar wrote:
> > As per the below post at Jetty, the jar jetty-all should not be used by
> any
> > other projects.
> > https://www.eclipse.org/lists/jetty-users/msg06030.html
> > Can someone please help to confirm if my understanding is correct that
> > activemq-all-5.15.10.jar has a dependency on
> > jetty-all-9.4.19.v20190610-uber.jar ?
> >
> > Thanks
> > Naveen
> >
> >
> >
> > --
> > Sent from:
> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
> >
>
> --
> Jean-Baptiste Onofré
> [hidden email]
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>
Reply | Threaded
Open this post in threaded view
|

Re: Not running on Jetty, JSR-356 support unavailable

jbonofre
Hi,

I don't think the conflict is related to jetty-all use.

Let me try to reproduce it first.

But clearly, it's related to the fact you are embedding ActiveMQ in Tomcat.

Regards
JB

On 29/11/2019 07:56, Naveen Kumar wrote:

> Hi JB,
>
> Thanks for the quick response. Is there any way I can fix the existing
> problem of JSR-356 conflicts with tomcat ?
> I can see something related to this was mentioned here
> http://activemq.apache.org/tomcat.html and
> https://issues.apache.org/jira/browse/AMQ-6154
> But somehow it didn't help me.
>
> Thanks
> Naveen
>
> On Fri, Nov 29, 2019 at 11:53 AM Jean-Baptiste Onofré <[hidden email]>
> wrote:
>
>> Hi,
>>
>> ActiveMQ 5.15.11 uses Jetty 9.4.22, using jetty-all artifact.
>>
>> It's just fine for ActiveMQ standalone. Anyway, I will improve (mostly
>> to reduce the Jetty deps volume).
>>
>> If you use ActiveMQ in Karaf, you don't have the issue as Jetty
>> artifacts are already provided by Karaf.
>>
>> I created https://issues.apache.org/jira/browse/AMQ-7358 to do the
>> change for 5.16.0.
>>
>> Regards
>> JB
>>
>> On 29/11/2019 06:48, Naveen Kumar wrote:
>>> As per the below post at Jetty, the jar jetty-all should not be used by
>> any
>>> other projects.
>>> https://www.eclipse.org/lists/jetty-users/msg06030.html
>>> Can someone please help to confirm if my understanding is correct that
>>> activemq-all-5.15.10.jar has a dependency on
>>> jetty-all-9.4.19.v20190610-uber.jar ?
>>>
>>> Thanks
>>> Naveen
>>>
>>>
>>>
>>> --
>>> Sent from:
>> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>>>
>>
>> --
>> Jean-Baptiste Onofré
>> [hidden email]
>> http://blog.nanthrax.net
>> Talend - http://www.talend.com
>>
>

--
Jean-Baptiste Onofré
[hidden email]
http://blog.nanthrax.net
Talend - http://www.talend.com
Reply | Threaded
Open this post in threaded view
|

Re: Not running on Jetty, JSR-356 support unavailable

Naveen Kumar
Hi JB,

For a test,
I just placed the jetty-all jar in tomcat 9 lib and server start up reports
the same error.
I did not keep activemq or any other jar.

Thanks
Naveen



--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
Reply | Threaded
Open this post in threaded view
|

Re: Not running on Jetty, JSR-356 support unavailable

Tim Bain
In the short term, one option would be to simply not include the Jetty JAR
in the ActiveMQ classpath. I'd expect you might lose access to the web
console and possibly also to the HTTP transport (I'm not sure if that
relies on Jetty, but it wouldn't surprise me if it did), but if you could
live without those things, it might give you an immediate path forward
while JB works out exactly which Jetty JARs should replace jetty-all.

Tim

On Fri, Nov 29, 2019, 12:22 AM Naveen Kumar <[hidden email]> wrote:

> Hi JB,
>
> For a test,
> I just placed the jetty-all jar in tomcat 9 lib and server start up reports
> the same error.
> I did not keep activemq or any other jar.
>
> Thanks
> Naveen
>
>
>
> --
> Sent from:
> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>
Reply | Threaded
Open this post in threaded view
|

Re: Not running on Jetty, JSR-356 support unavailable

Naveen Kumar
Hi Tim,

Thank you for the suggestion.
I tried using TCP transport in place of HTTP and now I get another problem:

SEVERE [main]
com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate
WSSERVLET11: failed to parse runtime descriptor:
java.lang.NoClassDefFoundError: Could not initialize class
com.sun.xml.ws.model.WrapperBeanGenerator
        java.lang.NoClassDefFoundError: Could not initialize class
com.sun.xml.ws.model.WrapperBeanGenerator
                at
com.sun.xml.ws.model.RuntimeModeler.getRequestWrapperClass(RuntimeModeler.java:392)
                at
com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:815)
                at
com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:746)
                at
com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:506)
                at
com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:337)
                at com.sun.xml.ws.db.DatabindingImpl.<init>(DatabindingImpl.java:102)
                at
com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:75)
                at
com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:59)
                at
com.sun.xml.ws.db.DatabindingFactoryImpl.createRuntime(DatabindingFactoryImpl.java:128)
                at
com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:436)
                at com.sun.xml.ws.server.EndpointFactory.create(EndpointFactory.java:270)
                at
com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:147)
                at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:574)
                at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:557)
                at
com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:260)
                at
com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:152)
                at
com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(WSServletContextListener.java:131)
                at
com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:152)
                at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4682)
                at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5143)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
                at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
                at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
                at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1133)
                at
org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1867)
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
                at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                at
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
                at
java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
                at
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1045)
                at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:429)
                at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
                at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
                at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
                at
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
                at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
                at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)
                at
org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
                at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
                at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                at
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
                at
java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
                at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
                at
org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                at
org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                at
org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:932)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:344)
                at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)

It looks like some conflict with jaxws-rt.jar. I checked Activemq jar and it
has a new package com.sun.xml.
If I delete this package from the jar, the server start up works fine.
Could you please help with this ?

Thanks
Naveen



--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
Reply | Threaded
Open this post in threaded view
|

Re: Not running on Jetty, JSR-356 support unavailable

Tim Bain
So we're repackaging com.sun.xml classes in the ActiveMQ JARs? Are you
using activemq-all.jar by any chance? If so, please switch to using the
individual JARs and see if that solves the problem; activemq-all.jar is
intended as a quick-start for standalone use, but anytime that users find
that they don't want something that is bundled with it, they (you) should
switch to the individual JARs.

If you're not using activemq-all.jar, can you tell us which JAR you see the
com.sun.xml JARs repackaged in?

Thanks,
Tim

On Mon, Dec 2, 2019, 6:18 AM Naveen Kumar <[hidden email]> wrote:

> Hi Tim,
>
> Thank you for the suggestion.
> I tried using TCP transport in place of HTTP and now I get another problem:
>
> SEVERE [main]
>
> com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate
> WSSERVLET11: failed to parse runtime descriptor:
> java.lang.NoClassDefFoundError: Could not initialize class
> com.sun.xml.ws.model.WrapperBeanGenerator
>         java.lang.NoClassDefFoundError: Could not initialize class
> com.sun.xml.ws.model.WrapperBeanGenerator
>                 at
>
> com.sun.xml.ws.model.RuntimeModeler.getRequestWrapperClass(RuntimeModeler.java:392)
>                 at
>
> com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:815)
>                 at
> com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:746)
>                 at
> com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:506)
>                 at
>
> com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:337)
>                 at
> com.sun.xml.ws.db.DatabindingImpl.<init>(DatabindingImpl.java:102)
>                 at
>
> com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:75)
>                 at
>
> com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:59)
>                 at
>
> com.sun.xml.ws.db.DatabindingFactoryImpl.createRuntime(DatabindingFactoryImpl.java:128)
>                 at
>
> com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:436)
>                 at
> com.sun.xml.ws.server.EndpointFactory.create(EndpointFactory.java:270)
>                 at
>
> com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:147)
>                 at
> com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:574)
>                 at
> com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:557)
>                 at
>
> com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:260)
>                 at
>
> com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:152)
>                 at
>
> com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(WSServletContextListener.java:131)
>                 at
>
> com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:152)
>                 at
>
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4682)
>                 at
>
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5143)
>                 at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>                 at
>
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
>                 at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
>                 at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
>                 at
>
> org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1133)
>                 at
>
> org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1867)
>                 at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>                 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>                 at
>
> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>                 at
>
> java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
>                 at
>
> org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1045)
>                 at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:429)
>                 at
> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
>                 at
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
>                 at
>
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
>                 at
>
> org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
>                 at
> org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
>                 at
>
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)
>                 at
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
>                 at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>                 at
>
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
>                 at
>
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
>                 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>                 at
>
> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>                 at
>
> java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
>                 at
>
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
>                 at
>
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
>                 at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>                 at
>
> org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
>                 at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>                 at
>
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:932)
>                 at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>                 at
> org.apache.catalina.startup.Catalina.start(Catalina.java:633)
>                 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>                 at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>                 at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>                 at java.lang.reflect.Method.invoke(Method.java:498)
>                 at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:344)
>                 at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)
>
> It looks like some conflict with jaxws-rt.jar. I checked Activemq jar and
> it
> has a new package com.sun.xml.
> If I delete this package from the jar, the server start up works fine.
> Could you please help with this ?
>
> Thanks
> Naveen
>
>
>
> --
> Sent from:
> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>