我想在jsp页面上使用我的java方法,但是来自stackoverflow的大多数答案对我没有帮助。有人可以帮我解决这个问题吗?
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代码,我想要的是首先在serviceclient上连接公共send()方法,然后调用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代码。它在运行之前没有出现任何错误,但在我运行此代码后,我得到以下错误:
HTTP状态500 - 在第14行处理JSP页面/NewFile.jsp时发生异常 此错误代码
答案 0 :(得分:0)
我想要的是首先在serviceclient上连接公共send()方法,然后调用messagesending()方法完成一些工作。
类中的send()方法不是普通方法,它是一个构造函数,因为它的名称与类名匹配。在对象构造时自动调用构造函数。这就是为什么当你在JSP中创建send类的新对象时,会自动调用send()方法。
如果你想要发送一个发送对象,就像你要求的那样,expilcitly调用send方法。有两种方法:
不要从send()方法调用messagesending()并更新JSP以显式调用messagesending()。如下:
<%
send sendclass = new send();
sendclass.messagesending();
%>
将您的类名从send更改为MessageSender(但不要更改send()方法名称及其正文)。然后按如下方式编写JSP:
<%
MessageSender messageSender = new MessageSender();
messageSender.send();
%>
它可以帮助您根据需要调用send方法。 500错误代码显示在处理JSP页面时服务器端出现了一些错误。