この投稿の例に従いました: Matlab から Rails にデータを送信する方法ですが、情報が見つからないというエラー メッセージが表示されます。私のスクリプトは次のようになります。
javaaddpath('./httpcomponents/httpclient-4.2.2.jar')
javaaddpath('./httpcomponents/httpcore-4.2.2.jar')
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
httpclient = DefaultHttpClient();
httppost = HttpPost('http://localhost:3000/signin');
httppost.addHeader('Content-Type','application/json');
httppost.addHeader('Accept','application/json');
tokenRequest = StringEntity('{"session", "{email_address:""email@aol.com,""password:""password""}"}');
httppost.setEntity(tokenRequest);
response = httpclient.execute(httppost);
最後の行で、次のエラーが表示されます。
Java 例外が発生しました: java.lang.VerifyError: 最終クラスから継承できません
オンラインで検索すると、これはソフトウェアのバージョンの問題であることが分かります。これらのファイルの 4.2 ビルド (他の投稿で使用したものと同じもの) を使用してみましたが、同じエラーが発生しました。誰が何が間違っているのか考えていますか? または、これらの外部ライブラリを使用せずに、私がやろうとしていることを行う方法を知っていますか?
編集:
もともと私はこのコードを使用してみました:
tokenRequest = {'session', '{''email_address'':''email@aol.com'',''password'':''password''}'};
token = urlread('http://localhost:3000/signin','POST',tokenRequest);
しかし、私はその他の投稿に私を導いた NoMethodError を受け取りました:
NoMethodError (undefined method `each' for "{'email_address':'email@aol.com','password':'password'}":String):
app/models/session.rb:14:in `initialize'
このエラーがスローされる理由は、サーバーが、 each メソッドを持たない String オブジェクトを受け取っていると考えているためだと思います。「Content-Type」引数を使用してそのjsonを指定することで、これを修正すると思います。urlread を使用してこれを行う方法はありますか?
編集: Java ライブラリの問題の完全なスタック トレース
Java exception occurred:
java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at com.mathworks.jmi.CustomURLClassLoader.findClass(ClassLoaderManager.java:760)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at org.apache.http.impl.client.DefaultHttpClient.createHttpParams(DefaultHttpClient.java:157)
at org.apache.http.impl.client.AbstractHttpClient.getParams(AbstractHttpClient.java:448)
at org.apache.http.impl.client.AbstractHttpClient.createClientConnectionManager(AbstractHttpClient.java:309)
at org.apache.http.impl.client.AbstractHttpClient.getConnectionManager(AbstractHttpClient.java:466)
at org.apache.http.impl.client.AbstractHttpClient.createHttpContext(AbstractHttpClient.java:286)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:851)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)