我正在使用Objective System Inc(http://www.obj-sys.com/products/asn1c/index.php)ASN.1 Compiler
和规范文件(cdr_spec.asn)生成Java源代码。 CDRS基于格式BER(基本编码规则)进行编码
生成Java源代码的命令:
./asn1c cdr_spec.asn -java -ber -reader -print -getset -pkgname com.testpkg
生成源:
ASN1C Compiler, Version 6.4.5
Copyright (c) 1997-2011 Objective Systems, Inc. All Rights Reserved.
Registered to: XXXXXX
Parsing ASN.1 definitions..
Generating Java source files for module XXX-XXX..
当我解码第一个CDR文件时,它仅解析3行,CDR文件应包含100多行,因此它被部分解码。
当我尝试解码另一个CDR文件时,它在解码CDR文件时失败并给了我错误:
com.objsys.asn1j.runtime.Asn1MissingRequiredException: ASN.1 decode error @ offset 832:
SEQUENCE or SET is missing a required element.
10:11:30.394 [main] ERROR com.testpkg.Test - ASN.1 decode error @ offset 832:
SEQUENCE or SET is missing a required element.
当我使用工具检查其语法时,我的ASN.1规范文件没有任何语法错误。
知道ASN.1的人能帮我解决这个问题吗?
答案 0 :(得分:1)
当我尝试解码另一个CDR文件时,解码CDR文件时失败并给我这样的错误:
*******
根据您的描述,问题似乎与输入数据有关,而与实际规范本身无关。供应商提供的规范与其硬件产生的数据并不完全相符并不罕见。
如果您可以确定缺少哪个元素,您可以随时尝试在规范中标记字段com.objsys.asn1j.runtime.Asn1MissingRequiredException: ASN.1 decode error @ offset 832: SEQUENCE or SET is missing a required element.
10:11:30.394 [main] ERROR com.testpkg.Test - ASN.1 decode error @ offset 832:
SEQUENCE or SET is missing a required element.
,重新生成代码,然后重试。
或者,您可以随时联系软件和/或硬件供应商以获取帮助。