2017-07-15 22 views
0

jspページで自分のjavaメソッドを使いたいのですが、stackoverflowからの回答のほとんどは私には役に立ちません。誰かがこれで私を助けることができますか?jspでJavaのオーバーライドされたメソッドを呼び出す方法は?

public class send{ 
private static final String connectionString = "HostName=hackhubdeu.azure-devices.net;SharedAccessKeyName=****;SharedAccessKey=****"; 
private static final IotHubServiceClientProtocol protocol = IotHubServiceClientProtocol.AMQPS; 
private static final String deviceId = "hack01"; 
ServiceClient serviceClient; 
boolean onOff = false; 



public send() { 
    try { 
     this.serviceClient = ServiceClient.createFromConnectionString(connectionString, protocol); 

     this.serviceClient.open(); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    messagesending(); 
} 

public static void main(String[] args) { 
    new send(); 

} 

public void messagesending() { 
    onOff = !onOff; 
    try { 
     FeedbackReceiver feedbackReceiver = serviceClient.getFeedbackReceiver(); 
     feedbackReceiver.open(); 

     Message msg = new Message(String.valueOf(onOff)); 
     msg.setDeliveryAcknowledgement(DeliveryAcknowledgement.Full); 

     serviceClient.send(deviceId, msg); 
     System.out.println("Message sent to device"); 

     FeedbackBatch feedbackBatch = feedbackReceiver.receive(10000); 
     if (feedbackBatch != null) { 
      System.out.println("Message feedback received, feedback time: " 
        + feedbackBatch.getEnqueuedTimeUtc().toString()); 
     } 
     if (feedbackReceiver != null) feedbackReceiver.close(); 

    } catch (IotHubException ee) { 
     ee.printStackTrace(); 
    } catch (IOException eee) { 
     eee.printStackTrace(); 
    } catch (InterruptedException eeee) { 
     eeee.printStackTrace(); 
    } 

} 

これは私のJavaコードである、と私は呼びたいことは公共のsend()メソッドが最初にserviceclientに接続するためにあること、およびいくつかの仕事をするためにmessagesending()メソッドを呼び出すよりも、です。

<%@page import="munjuPrj.send"%> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
pageEncoding="UTF-8"%> 

<%@ page import ="munjuPrj.send" %> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
</head> 
<body> 
<% 
send sendclass = new send(); 
%> 
</body> 
</html> 

これは私のjspコードです。それは、実行する前に、すべてのエラーをするdoesntのが、私はこのコードを実行した後、私はエラーの下に取得する:

HTTP Status 500 - An exception occurred processing JSP page /NewFile.jsp at line 14 this error code

+0

Plsはすぐに共有アクセスキーを変更します。それは公開されました.. –

+0

あなたは直接、私はJSPページを呼び出すことなく、意味を送信クラスを実行すると、あなたのプログラムが動作しますか? –

+0

例外のStackTraceログを送信して、HTTPステータス500のエラー情報を指定できますか? –

答えて

0

what i wanna call is that public send() method to connect on the serviceclient first, and than call the messagesending() method to do some jobs done.

あなたのクラスのsend()メソッドは、その名前、そのコンストラクタ通常の方法ではありませんクラス名と一致する。コンストラクタはオブジェクト構築時に自動的に呼び出されます。それで、JSPでsendクラスの新しいオブジェクトを作成すると、send()メソッドが自動的に呼び出されます。

sendメソッドをexpilcitly、つまり送信オブジェクトを作成した後に呼び出す場合は、要求したとおりにします。

  1. send()メソッドからmessagesending()を呼び出して、あなたJSPを更新しない明示的)(messagesendingする電話をかけるには次の2つの方法があります。次のように:sendから

    <% 
    send sendclass = new send();  
    sendclass.messagesending(); 
    %> 
    
  2. 変更しますクラス名はするmessageSenderする(ただし、send()メソッド名とそのボディを変更しないでください)。

    <% 
    MessageSender messageSender = new MessageSender(); 
    messageSender.send(); 
    %> 
    

をしたいとそれはsendメソッドを呼び出すためにあなたを助けなければならない。次のように次にJSPを記述します。 500エラーコードは、JSPページの処理中にサーバー側で何らかのエラーが発生したことを示しています。

関連する問題