我使用 xjc 2.2.4-2 生成 java 类。我有2个xsd文件,message.xsd和typeDef.xsd,绑定文件是schema.xjb,但是当我执行下面的命令时,只生成了message.xsd。
bash-3.2$ xjc -d jaxb -b schemas/ schemas/*.xsd -verbose
解析模式...
编译模式...[INFO] 生成代码
未知位置
org/openuri/ChangeOfferingStateType.java
org/openuri/ObjectFactory.java
org/openuri/package-info.java
为什么没有生成typeDef.xsd?
这是我的 xsd 和 xjb 文件。
bash-3.2$ 猫模式/message.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gsta="http://gsta.com/neva2/externalService"
targetNamespace="http://www.openuri.org/"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://gsta.com/neva2/externalService" schemaLocation="typeDef.xsd" />
<xs:complexType name="ChangeOfferingStateType">
<xs:sequence>
<xs:element name="workFlowNo" type="xs:string" minOccurs="0" />
<xs:element name="externalNumber" type="gsta:ExternalNumberType" />
<xs:choice>
<xs:element name="offeringSpecId" type="gsta:SpecIdType" />
<xs:element name="productSpecId" type="gsta:SpecIdType" />
</xs:choice>
<xs:element name="state" type="gsta:SetStateCode" />
<xs:element name="openTime" type="xs:date" minOccurs="0" />
<xs:element name="recentModifyReason" type="gsta:RecentModifyReasonType" />
</xs:sequence>
</xs:complexType>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
bash-3.2$ 猫模式/typeDef.xsd …
我生成了一个私钥:
openssl req -x509 -out anytime-pub.der -outform der -new -newkey rsa:2048 -keyout anytime.pem -days 3650
Run Code Online (Sandbox Code Playgroud)
在我的旧代码中,我使用 M2Crypto 加载密钥文件来解密某些内容,并且它有效。
from M2Crypto import RSA
ServerRSA = RSA.load_key('keys/anytime.pem', passwd)
key = ServerRSA.private_decrypt(b64decode(cipher),1)
Run Code Online (Sandbox Code Playgroud)
但是当我使用 pycrypto 做同样的事情时,会出现以下错误:
>>> from Crypto.PublicKey import RSA
>>> key = RSA.importKey(open('keys/anytime.pem', 'r'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/xyzkizer/Projects/AnytimeBackend/env/lib/python2.7/site-packages/Crypto/PublicKey/RSA.py", line 641, in importKey
raise ValueError("PEM encryption format not supported.")
ValueError: PEM encryption format not supported.
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我的错误是什么?
谢谢你!