Giter Club home page Giter Club logo

graylog-plugin-jabber's Introduction

XMPP / Jabber Plugin for Graylog

Build Status Github Downloads GitHub Release

XMPP/Jabber Alarmcallback Plugin for Graylog.

Required Graylog version: 2.4.0 and later

Installation

Download the plugin and place the .jar file in your Graylog plugin directory. The plugin directory is the plugins/ folder relative from your graylog-server directory by default and can be configured in your graylog.conf file.

Restart graylog-server and you are done.

Build

This project is using Maven 3 and requires Java 8 or higher.

You can build a plugin (JAR) with mvn package.

DEB and RPM packages can be build with mvn jdeb:jdeb and mvn rpm:rpm respectively.

Plugin Release

We are using the maven release plugin:

$ mvn release:prepare
[...]
$ mvn release:perform

This sets the version numbers, creates a tag and pushes to GitHub. Travis CI will build the release artifacts and upload to GitHub automatically.

License

Copyright (c) 2014-2018 Graylog, Inc.

This library is licensed under the GNU General Public License, Version 3.0.

See https://www.gnu.org/licenses/gpl-3.0.html or the LICENSE.txt file in this repository for the full license text.

graylog-plugin-jabber's People

Contributors

bernd avatar dennisoelkers avatar flowdalic avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

graylog-plugin-jabber's Issues

Configurable template for notifications

It would be great to have jabber notification template configurable, like we have with email notifications.
Right now, it can be altered but only before plugin compilation, which is a bit unusable afterwards.

unable to find valid certification path to requested target

Use jabber server ejabberd.
When I send an alert test, I get an error.

2016-09-18T18:58:45.273+03:00 WARN  [AbstractXMPPConnection] Connection closed with error
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) ~[?:1.8.0_101]
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) ~[?:1.8.0_101]
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) ~[?:1.8.0_101]
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) ~[?:1.8.0_101]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509) ~[?:1.8.0_101]
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) ~[?:1.8.0_101]
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[?:1.8.0_101]
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[?:1.8.0_101]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) ~[?:1.8.0_101]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_101]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) ~[?:1.8.0_101]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) ~[?:1.8.0_101]
    at org.jivesoftware.smack.tcp.XMPPTCPConnection.proceedTLSReceived(XMPPTCPConnection.java:748) [graylog-plugin-jabber-1.2.1.jar:?]
    at org.jivesoftware.smack.tcp.XMPPTCPConnection.access$900(XMPPTCPConnection.java:139) [graylog-plugin-jabber-1.2.1.jar:?]
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1001) [graylog-plugin-jabber-1.2.1.jar:?]
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$200(XMPPTCPConnection.java:935) [graylog-plugin-jabber-1.2.1.jar:?]
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:950) [graylog-plugin-jabber-1.2.1.jar:?]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387) ~[?:1.8.0_101]
    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) ~[?:1.8.0_101]
    at sun.security.validator.Validator.validate(Validator.java:260) ~[?:1.8.0_101]
    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) ~[?:1.8.0_101]
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) ~[?:1.8.0_101]
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[?:1.8.0_101]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) ~[?:1.8.0_101]
    ... 13 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) ~[?:1.8.0_101]
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) ~[?:1.8.0_101]
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) ~[?:1.8.0_101]
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382) ~[?:1.8.0_101]
    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) ~[?:1.8.0_101]
    at sun.security.validator.Validator.validate(Validator.java:260) ~[?:1.8.0_101]
    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) ~[?:1.8.0_101]
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) ~[?:1.8.0_101]
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[?:1.8.0_101]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) ~[?:1.8.0_101]

jabber

Not working on 1.0.0

Hello,

Current version does not send XMPP messages and throws following stack trace on official allinone docker image (https://github.com/Graylog2/graylog2-images/tree/master/docker) when you click on "test alarm" button.

2015-03-13_16:56:27.25516 2015-03-13 16:56:27,251 ERROR: org.graylog2.jersey.container.netty.NettyContainer - Uncaught exception in transport layer. This is likely a bug, closing channel.
2015-03-13_16:56:27.25520 java.lang.NoClassDefFoundError: Could not initialize class org.jivesoftware.smack.SmackConfiguration
2015-03-13_16:56:27.25520   at org.jivesoftware.smack.ConnectionConfiguration.<init>(ConnectionConfiguration.java:67)
2015-03-13_16:56:27.25520   at org.graylog2.alarmcallbacks.jabber.JabberAlarmCallback.call(JabberAlarmCallback.java:122)
2015-03-13_16:56:27.25521   at org.graylog2.rest.resources.streams.alerts.StreamAlertReceiverResource.sendDummyAlert(StreamAlertReceiverResource.java:168)
2015-03-13_16:56:27.25521   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2015-03-13_16:56:27.25521   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2015-03-13_16:56:27.25521   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2015-03-13_16:56:27.25521   at java.lang.reflect.Method.invoke(Method.java:497)
2015-03-13_16:56:27.25522   at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
2015-03-13_16:56:27.25522   at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151)
2015-03-13_16:56:27.25522   at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:172)
2015-03-13_16:56:27.25522   at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)
2015-03-13_16:56:27.25523   at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
2015-03-13_16:56:27.25523   at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:384)
2015-03-13_16:56:27.25523   at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:342)
2015-03-13_16:56:27.25523   at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:101)
2015-03-13_16:56:27.25526   at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:271)
2015-03-13_16:56:27.25533   at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
2015-03-13_16:56:27.25534   at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
2015-03-13_16:56:27.25534   at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
2015-03-13_16:56:27.25534   at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
2015-03-13_16:56:27.25534   at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
2015-03-13_16:56:27.25534   at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297)
2015-03-13_16:56:27.25535   at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254)
2015-03-13_16:56:27.25535   at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1030)
2015-03-13_16:56:27.25535   at org.graylog2.jersey.container.netty.NettyContainer.messageReceived(NettyContainer.java:356)
2015-03-13_16:56:27.25540   at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
2015-03-13_16:56:27.25542   at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
2015-03-13_16:56:27.25542   at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
2015-03-13_16:56:27.25543   at org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43)
2015-03-13_16:56:27.25544   at org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67)
2015-03-13_16:56:27.25545   at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:176)
2015-03-13_16:56:27.25546   at org.jboss.netty.handler.execution.MemoryAwareThreadPoolExecutor$MemoryAwareRunnable.run(MemoryAwareThreadPoolExecutor.java:622)
2015-03-13_16:56:27.25547   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
2015-03-13_16:56:27.25547   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
2015-03-13_16:56:27.25548   at java.lang.Thread.run(Thread.java:745)

Define XMPP Type

Please define a message Type, here:

final Message message = new Message(messageRecipient, messageBody);

I prefer for user jids Message.Type.CHAT and for MUC / Groupchat Message.Type.GROUP_CHAT

by just adding a line message.setType(Message.Type.CHAT)

see API Doc:
http://download.igniterealtime.org/smack/docs/latest/javadoc/org/jivesoftware/smack/packet/Message.html

Make "user@realm" authentication work

It's not uncommon that jabber servers require that you specify the user@realm then you authenticate against them. This doesn't seem to work with this plugin. I've also verified my test account(s) with an IM client, and that works fine.

@kroepke also mention earlier that he only got it working leaving out the @realm- part of the username.
"For the record, when testing I had to leave out the domain name from the user account used to authenticate, otherwise I got SASL errors as well, maybe that helps."

Often <сonnection closed with error>

When jabber plugin sends a message in the log on the server constantly appear such messages.
This plugin works well.
Why do I get these messages? This may affect the performance?

graylog 2.1.1
ubuntu-server 16.04.1

/var/log/graylog-server/server.log

2016-09-30T13:03:11.671+03:00 WARN [AbstractXMPPConnection] Connection closed with error
org.jivesoftware.smack.XMPPException$StreamErrorException: conflict You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
stream:errorReplaced by new connection/stream:error
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1011) [graylog-plugin-jabber-1.2.1.jar:?]
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:952) [graylog-plugin-jabber-1.2.1.jar:?]
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:967) [graylog-plugin-jabber-1.2.1.jar:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]

2016-09-30T13:07:06.667+03:00 WARN [AbstractXMPPConnection] Connection closed with error
org.jivesoftware.smack.XMPPException$StreamErrorException: conflict You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
stream:errorReplaced by new connection/stream:error
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1011) [graylog-plugin-jabber-1.2.1.jar:?]
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:952) [graylog-plugin-jabber-1.2.1.jar:?]
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:967) [graylog-plugin-jabber-1.2.1.jar:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]

2016-09-30T14:01:11.682+03:00 WARN [AbstractXMPPConnection] Connection closed with error
org.jivesoftware.smack.XMPPException$StreamErrorException: conflict You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
stream:errorReplaced by new connection/stream:error
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1011) [graylog-plugin-jabber-1.2.1.jar:?]
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:952) [graylog-plugin-jabber-1.2.1.jar:?]
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:967) [graylog-plugin-jabber-1.2.1.jar:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]

2016-09-30T14:27:06.678+03:00 WARN [AbstractXMPPConnection] Connection closed with error
org.jivesoftware.smack.XMPPException$StreamErrorException: conflict You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
stream:errorReplaced by new connection/stream:error
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1011) [graylog-plugin-jabber-1.2.1.jar:?]
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:952) [graylog-plugin-jabber-1.2.1.jar:?]
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:967) [graylog-plugin-jabber-1.2.1.jar:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]

2016-09-30T14:31:11.677+03:00 WARN [AbstractXMPPConnection] Connection closed with error
org.jivesoftware.smack.XMPPException$StreamErrorException: conflict You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
stream:errorReplaced by new connection/stream:error
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1011) [graylog-plugin-jabber-1.2.1.jar:?]
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:952) [graylog-plugin-jabber-1.2.1.jar:?]
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:967) [graylog-plugin-jabber-1.2.1.jar:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]

Not working on 1.2.0rc2 ?

Hi,

After triggering a stream alarm, I get this in the graylog-server log:

2015-09-07T11:05:54.421+02:00 WARN [XMPPConnection] Connection closed with error
stream:error (host-unknown)
at org.jivesoftware.smack.tcp.PacketReader.parsePackets(PacketReader.java:222)
at org.jivesoftware.smack.tcp.PacketReader.access$000(PacketReader.java:47)
at org.jivesoftware.smack.tcp.PacketReader$1.run(PacketReader.java:81)

And I never see a connection/authentication attempt on the jabber server...

(FYI, we run Ubuntu 14.04 and have installed graylog(-server + web) and the xmpp plugin using the available deb packages:

root@graylog:~# dpkg -l | grep graylog
ii graylog-1.1-repository-ubuntu14.04 1.2.0-3 all Package to install Graylog 1.1 GPG key and repository
ii graylog-1.2-repository-ubuntu14.04 1.2.0-4 all Package to install Graylog 1.2 GPG key and repository
ii graylog-alarmcallback-jabber 1.1.0 all Graylog2 Jabber/XMPP Alarmcallback plugin
ii graylog-server 1.2.0-2.rc.2 all Graylog server
ii graylog-web 1.2.0-2.rc.2 all Graylog web)

Release .jar, .deb files

Hi,

I noticed that 1.2.0 was released, but only as a src. Will there be prebuilt .jar, .deb etc. released too ?
I'm keen in testing if the upgraded smack lib in 1.2.0 version of this plugin will resolve the problem of connecting to ejabberd (that we're seeing with the v1.1.0 release of this plugin)

Could not initialize class org.graylog.plugins.jabber.shaded.smack.tcp.XMPPTCPConnectionConfiguration

Hi there

We have a working prosody server (ie clients like pidgin work fine). I've configured the XMPP account/password options, but when I push the "test" button, I get the following error, and tcpdump shows no evidence of any packets being sent from the graylog server to the XMPP server

Could not send test alert notification
Sending test alert notification failed with message: cannot POST https://our.server/api/alerts/callbacks/58b8c1a69cdbc27c699c20b6/test (500)

Using tcpdump, I captured the POST and unpacked the returned error page below - FYI this does not show up in /var/log/graylog-server/server.log - this kind of error should?

It's obviously some kind of java error. I have java-1.8.0-openjdk-headless on CentOS-7. Any ideas how I can fix this?

Thanks

java.lang.NoClassDefFoundError: Could not initialize class org.graylog.plugins.jabber.shaded.smack.tcp.XMPPTCPConnectionConfiguration

Stacktrace

org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: Could not initialize class org.graylog.plugins.jabber.shaded.smack.tcp.XMPPTCPConnectionConfiguration
	at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer$ResponseWriter.rethrow(GrizzlyHttpContainer.java:324)
	at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer$ResponseWriter.failure(GrizzlyHttpContainer.java:306)
	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:509)
	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:334)
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
	at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:384)
	at org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:224)
	at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:176)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.graylog.plugins.jabber.shaded.smack.tcp.XMPPTCPConnectionConfiguration
	at org.graylog2.alarmcallbacks.jabber.JabberAlarmCallback.login(JabberAlarmCallback.java:60)
	at org.graylog2.alarmcallbacks.jabber.JabberAlarmCallback.call(JabberAlarmCallback.java:96)
	at org.graylog2.rest.resources.alarmcallbacks.AlarmCallbacksResource.test(AlarmCallbacksResource.java:150)
	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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160)
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
	... 14 more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.