【发布时间】:2020-06-17 12:34:21
【问题描述】:
控制器
import PFEproject.APIs.services.SNMPManager;
@RestController
@RequestMapping("/snmp")
public class snmptestC {
@GetMapping
public void ResponseEntity()throws Exception {
SNMPManager client = new SNMPManager("udp:127.0.0.1/161");
client.start();
String sysDescr = client.getAsString(new OID(".1.3.6.1.2.1.2.2.1.2"));
System.out.println(sysDescr);
}
}
**snmpManager class**
import org.snmp4j.*;
public class SNMPManager {
private Snmp snmp = null;
private String address = null;
public SNMPManager(String address) {
this.address = address;
}
public void start() throws IOException {
TransportMapping transport = new DefaultUdpTransportMapping();
snmp = new Snmp(transport);
transport.listen();
}
public ResponseEvent get(OID oids[]) throws IOException {
PDU pdu = new PDU();
for (OID oid : oids) {
pdu.add(new VariableBinding(oid));
}
pdu.setType(PDU.GET);
ResponseEvent event = snmp.send(pdu, getTarget(), null);
if(event != null) {
return event;
}
throw new RuntimeException("GET timed out");
}
public String getAsString(OID oid) throws IOException {
ResponseEvent event = get(new OID[] { oid });
return event.getResponse().get(0).getVariable().toString();
}
private Target getTarget() {
Address targetAddress = GenericAddress.parse(address);
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setAddress(targetAddress);
target.setRetries(2);
target.setTimeout(1500);
target.setVersion(SnmpConstants.version2c);
return target;
}
}
错误信息
出现意外错误(类型=内部服务器错误,状态=500)。 org/snmp4j/transport/DefaultUdpTransportMapping 已由更新版本的 Java Runtime(类文件版本 53.0)编译,此版本的 Java Runtime 仅识别最高 52.0 的类文件版本 java.lang.UnsupportedClassVersionError: org/snmp4j/transport/DefaultUdpTransportMapping 已由更新版本的 Java Runtime(类文件版本 53.0)编译,此版本的 Java Runtime 仅识别最高 52.0 的类文件版本
【问题讨论】:
-
使用更高版本的 Java 运行?
-
您使用的依赖版本不支持您的 JRE 版本。您使用的是哪个 JRE 版本?
-
我使用 java 8 我应该安装 java 9 吗?
标签: spring spring-boot snmp4j