如何从google appengine登录graylog

时间:2016-11-29 16:01:32

标签: java google-app-engine graylog2

我在google appengine上运行了一个应用程序。 我试图从appengin登录greylog2(我不想使用应用程序引擎云记录而是greylog)

这是对我的pom的依赖:

      <dependency>
         <groupId>org.graylog2</groupId>
         <artifactId>gelfj</artifactId>
         <version>1.1.15</version>
      </dependency>

这是我的代码:

    GelfMessage message = new GelfMessage("myMessage", "myMessage", new Date().getTime(), "1");
    message.setHost("appspot");
    message.setVersion("1.3");
    message.setFacility("F");
    GelfUDPSender gelfUDPSender;
    gelfUDPSender = new GelfUDPSender("my-ip-address", 12202);
    GelfSenderResult result = gelfUDPSender.sendMessage(message);

当我在本地运行它时,它可以工作。但是当我在appengine上运行时,我看到以下消息:

Error for /worker
java.lang.NoClassDefFoundError: java.nio.channels.DatagramChannel is a restricted class. 
Please see the Google App Engine developer's guide for more details.
        at com.google.apphosting.runtime.security.shared.stub.java.nio.channels.DatagramChannel.<clinit>(DatagramChannel.java)
        at org.graylog2.GelfUDPSender.initiateChannel(GelfUDPSender.java:31)
        at org.graylog2.GelfUDPSender.<init>(GelfUDPSender.java:27)

编辑: graylog适用于防火墙。 我需要为appengine实例IP打开一条路由。 它有IP吗?

有没有办法获得ip?

1 个答案:

答案 0 :(得分:0)

1)无法使用org.graylog2 jar,因为它不是The JRE Class White List而是使用java.net.URLConnection。请参阅docs

2)享受docs

  

App Engine目前不提供映射静态IP地址的方法   到一个应用程序