【问题标题】:InetAddress cannot be resolved to a typeInetAddress 无法解析为类型
【发布时间】:2014-01-04 08:31:56
【问题描述】:

我正在使用以下代码来检查提供的 ip 在 java 中是否可以访问。

public String isNetworkReachable(){
        int timeout = 2000;
        String status = "SUCCESS";
        try {
            InetAddress address = InetAddress.getByAddress("10.2.240.74".getBytes());

            if(!address.isReachable(timeout)){
                status = "ERROR";
            }

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

        return status;

    }

当我运行代码时,我得到一个错误提示

java.lang.Error: Unresolved compilation problems: 
InetAddress cannot be resolved to a type
InetAddress cannot be resolved
InetAddress cannot be resolved to a type

at com.jkcs.touchpos.sync.SyncUtil.synchronzeManually(SyncUtil.java:83)
at com.jkcs.touchpos.sync.SyncUtil$$FastClassByCGLIB$$6e1c4a07.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:698)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:631)
at com.jkcs.touchpos.sync.SyncUtil$$EnhancerByCGLIB$$f7d7791c.synchronzeManually(<generated>)
at com.jkcs.touchpos.application.controller.TouchPosWebServiceController.syncStatus(TouchPosWebServiceController.java:864)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:920)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:816)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:575)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:801)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:426)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:118)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:495)
at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:179)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:361)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:864)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:116)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:243)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:112)
at org.eclipse.jetty.server.Server.handle(Server.java:337)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:552)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:979)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:533)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:399)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:437)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:435)
at java.lang.Thread.run(Thread.java:662)

我在这里做错了什么。请帮忙!

【问题讨论】:

  • 您似乎错过了导入。发布您的完整课程
  • 顺便说一下,默认设置SUCCESS状态是不正确的。如果在创建InetAddress的过程中发生异常,该函数将返回SUCCESS
  • com.jkcd.touchpos.sync.SyncUtil 是你自己的班级吗?如果是这样,失败的第 83 行是什么?
  • 另外,一旦你解决了你的导入问题"10.2.240.74".getBytes()不会按照你的想法去做。
  • 在尝试执行代码之前,您总是可以尝试正确编译代码。

标签: java ip-address network-protocols


【解决方案1】:

1) 导入java.net.InetAddress

2) 稍微修改函数isNetworkReachable()

public static String isNetworkReachable(){
    int timeout = 2000;
    String status = "ERROR";
    try {
        InetAddress address = InetAddress.getByName("10.2.240.74");

        if(address.isReachable(timeout)){
            status = "SUCCESS";
        }

    } catch (Exception e) {
        e.printStackTrace();
    }

    return status;

}

【讨论】:

    猜你喜欢
    • 2015-10-22
    • 1970-01-01
    • 2021-08-28
    • 2013-12-14
    • 2015-06-10
    • 2015-11-22
    • 1970-01-01
    • 2014-07-23
    • 2011-12-31
    相关资源
    最近更新 更多