我在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?
答案 0 :(得分:0)
1)无法使用org.graylog2
jar,因为它不是The JRE Class White List而是使用java.net.URLConnection
。请参阅docs
2)享受docs:
App Engine目前不提供映射静态IP地址的方法 到一个应用程序