Welcome to Questions - Ask OpenNMS, where you can ask questions and receive answers from other members of the community.

How can I solve "Cannot find symbol DisplayString" error while MIB compiling?

+2 votes
2,451 views

I'm trying to compile Liebert/Emerson MIBs: http://www.emersonnetworkpower.com/en-US/Brands/Liebert/Pages/TheLatestMIBsAvailableforDownloads.aspx

Load/compile the twelve individual MIB files onto your NMS in
    the following order:

    LIEBERT_GP_REG.MIB            (Load First)
    LIEBERT_GP_AGENT.MIB
    LIEBERT_GP_COND.MIB
    LIEBERT_GP_CONTROLLER.MIB
    LIEBERT_GP_NOTIFY.MIB
    LIEBERT_GP_SYSTEM.MIB
    LIEBERT_GP_ENV.MIB
    LIEBERT_GP_PDU.MIB
    LIEBERT_GP_POWER.MIB
    LIEBERT_GP_FLEXIBLE.MIB
    LIEBERT_GP_FLEXIBLE_COND.MIB       
    RFC1628_UPS_MIB.MIB           (Load Last)

 

But an error occurs. How can I solve it?

 

Wed Jun 11 21:59:33 CEST 2014 [ERROR] Problem found when compiling the MIB:

ERROR: Cannot find symbol DisplayString, Source: LIEBERT_GP_ENV.MIB, Row: 3227, Col: 21
        SYNTAX      DisplayString 
                    ^
OpenNMS version
1.12.5
Java version
java version "1.7.0_51"
OpenJDK Runtime Environment (rhel-2.4.4.1.el6_5-x86_64 u51-b02)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
Operating system
CentOS 6.5 x64
PostgreSQL version
psql (PostgreSQL) 8.4.20
asked Jun 11, 2014 by mfuhrmann (7,350 points)

2 Answers

0 votes
 
Best answer

I finally found the solution. I added this

DisplayString
        FROM SNMPv2-TC

into the IMPORTS part.

answered Oct 17, 2014 by mfuhrmann (7,350 points)
What does this error mean?

The "Cannot find symbol" errors generally occur when you try to reference an undeclared variable in your code. A "Cannot find symbol" error means that the compiler cannot do this. Your code appears to be referring to something that the compiler doesn't understand.

What things can cause this error?

The general causes for a Cannot find symbol error are things like:

    Incorrect spelling.

    Wrong case. Halo is different from halo.

    Improper use of acceptable identifier values (letters, numbers, underscore, dollar sign), my-class is not the same as myclass.

    No variable declaration or variable is outside of the scope you are referencing it in.

More about...cannot find symbol Error

http://net-informations.com/java/cjava/symbol.htm
0 votes
Can you give us the command which you use to convert the MIBs?
answered Jun 11, 2014 by indigo (10,370 points)
I'm using the GUI
Is the "symbol" DisplayString configured in another MIB that you did not load?
I don't think so, because I already imported:

    LIEBERT_GP_REG.MIB
    LIEBERT_GP_AGENT.MIB
    LIEBERT_GP_COND.MIB
    LIEBERT_GP_CONTROLLER.MIB
    LIEBERT_GP_NOTIFY.MIB
    LIEBERT_GP_SYSTEM.MIB
But Those MIB files have "DisplayString"?
I'm not sure. Please take a look: http://pastebin.com/sLG1TTbi

I can compile all MIBs except 2:

Wed Jul 16 13:30:26 CEST 2014 [INFO] Parsing MIB file /opt/opennms/share/mibs/pending/LIEBERT_GP_ENV.MIB
Wed Jul 16 13:30:27 CEST 2014 [ERROR] Problem found when compiling the MIB:

ERROR: Cannot find symbol DisplayString, Source: LIEBERT_GP_ENV.MIB, Row: 3227, Col: 21
        SYNTAX      DisplayString
                    ^

Wed Jul 16 13:30:40 CEST 2014 [INFO] Parsing MIB file /opt/opennms/share/mibs/pending/LIEBERT_GP_FLEXIBLE.MIB
Wed Jul 16 13:30:40 CEST 2014 [ERROR] Problem found when compiling the MIB:

ERROR: Parse error: expecting LOWER, found 'VAReactiveHours', Source: LIEBERT_GP_FLEXIBLE.MIB, Row: 364, Col: 13
            VAReactiveHours(4150),
            ^
ERROR: Cannot find symbol lgpFlexibleEntryUnitsOfMeasureEnum, Source: LIEBERT_GP_FLEXIBLE.MIB, Row: 193, Col: 13
            lgpFlexibleEntryUnitsOfMeasureEnum    INTEGER,
            ^
ERROR: Cannot find symbol lgpFlexibleEntryDataDescription, Source: LIEBERT_GP_FLEXIBLE.MIB, Row: 194, Col: 13
            lgpFlexibleEntryDataDescription       DisplayString
            ^
Your system has the RFC1213 MIB file?
It's compiled. Yes.
That was my guess. If RFC1213 is compiled in the system I donĀ“t have any other idea. Sorry
...