私はSmack APIを使用してマルチユーザーゲームクライアントを開発しています。 私はスマックアプリケーションに問題があります。私はメッセージと要求をサーバーに送信できますが、アプリケーションは応答を読み取ることができません。Smack例外 - JavaインストールまたはSmackによって発生しました
Exception in thread "Smack Packet Reader (0)" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.jivesoftware.smack.provider.ProviderManager.initialize(ProviderManager.java :193)
at org.jivesoftware.smack.provider.ProviderManager.<init>(ProviderManager.java:436)
at org.jivesoftware.smack.provider.ProviderManager.getInstance(ProviderManager.jav a:134)
at org.jivesoftware.smack.util.PacketParserUtils.parseIQ(PacketParserUtils.java:30 3)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:229)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:43)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:70)
Caused by: java.lang.NullPointerException
at java.util.TimeZone.parseCustomTimeZone(TimeZone.java:767)
at java.util.TimeZone.getTimeZone(TimeZone.java:471)
at java.util.TimeZone.getTimeZone(TimeZone.java:465)
at org.jivesoftware.smackx.workgroup.packet.TranscriptsProvider.<clinit>(Transcrip tsProvider.java:44)
... 9 more
No response from the server.:
それは、ネットワーク(ファイアウォール、NAT ...)問題ではない(同じサブネット内の別のMacintosh上で、同じコードが例外なくうまく動作します)。 MacOSのファイアウォールをチェックしたところ、問題は解決しましたか? この問題がJavaまたはSmackに依存するかどうかわかりません。 ありがとうございます。
'parseCustomTimeZone'に' null'を渡すことができますか? –
問題ありません。私はSmackを使用していませんが、null以外のパラメータが渡されていると仮定しているため、Javaライブラリからこれらの例外が頻繁に見えます。テストする最も簡単な方法は、 'null 'で直接呼び出すことです。 –
ご返信ありがとうございます。私はこのメソッドを使用しないため、これは不可能です。SmackはこのメソッドをAPIのどこかで使用していますが、同じコードが別のコンピュータでうまく動作するため、これは奇妙な問題です。 – Davide