[解決済み] Unmarshalling Error: 予期しない要素 (uri:url, local: "objectname") があります。期待される要素は <{}objectname> です。
2022-03-13 17:05:52
質問
jaxb2-marshallerを使用して、ウェブサービスと通信するためのクラスを生成しています。Javaクラスは、いくつかのwsdlファイルを使用して生成されます。
しかし、生成されたクラスのいくつかを使用しようとすると、生成されたObjectFactoryクラスを使用しているにもかかわらず、このアンマーシャリングエラーが発生しました。
スタックの一部です。
org.springframework.ws.soap.client.SoapFaultClientException: Unmarshalling Error: unexpected element (uri:"http://xxxxxxxxx", local:"customer"). Expected elements are <{}customer>
at org.springframework.ws.soap.client.core.SoapFaultMessageResolver.resolveFault(SoapFaultMessageResolver.java:38)
at org.springframework.ws.client.core.WebServiceTemplate.handleFault(WebServiceTemplate.java:826)
at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:621)
at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:555)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:390)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:383)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:373)
at einvoice.service.CustomerService.createCustomer(CustomerService.java:40)
at einvoice.controller.facturatie.FacturatieOverzichtController.handleRenderRequest(FacturatieOverzichtController.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
そして、私のクラス。
@Service
public class CustomerService {
@Autowired
private WebServiceTemplate customerDaoTemplate;
private ObjectFactory customerObjectFactory;
public CustomerService() {
customerObjectFactory = new ObjectFactory();
}
public boolean createCustomer(Customer c)
{
System.out.println("CREATING CUSTOMER");
einvoice.proxy.customerdaoservice.Customer customer = customerObjectFactory.createCustomer();
customer.setConnectionURL("test");
customer.setUid("testuid");
customer.setName("KorneelTest");
Create create = customerObjectFactory.createCreate();
create.setCustomer(customer);
try
{
customerDaoTemplate.marshalSendAndReceive(customerObjectFactory.createCreate(create));
return true;
}
catch(Exception ex)
{
ex.printStackTrace();
return false;
}
}
このエラーが表示されるのは、createCustomer()メソッドです。
The generated ObjectFactory class:
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2014.09.12 at 12:04:04 PM CEST
//
package einvoice.proxy.customerdaoservice;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.namespace.QName;
/**
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the be.icredit.einvoice.proxy.customerdaoservice package.
* <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
* and classes representing the binding of schema
* type definitions, element declarations and model
* groups. Factory methods for each of these are
* provided in this class.
*
*/
@XmlRegistry
public class ObjectFactory {
private final static QName _AbstractFilter_QNAME = new QName("http://xxxxxxx/", "abstractFilter");
private final static QName _Customer_QNAME = new QName("http://xxxxxxx/", "customer");
private final static QName _FindSingleResponse_QNAME = new QName("http://xxxxxxx/", "findSingleResponse");
private final static QName _Create_QNAME = new QName("http://xxxxxxx/", "create");
private final static QName _Find_QNAME = new QName("http://xxxxxxx/", "find");
private final static QName _CreateResponse_QNAME = new QName("xxxxxxx/", "createResponse");
private final static QName _FindResponse_QNAME = new QName("http://xxxxxxx/", "findResponse");
private final static QName _UpdateResponse_QNAME = new QName("http://xxxxxxx/", "updateResponse");
private final static QName _FindSingle_QNAME = new QName("http://xxxxxxx/", "findSingle");
private final static QName _CustomerFilter_QNAME = new QName("http://xxxxxxx/", "customerFilter");
private final static QName _Update_QNAME = new QName("http://xxxxxxx/", "update");
private final static QName _AbstractEntity_QNAME = new QName("http://xxxxxxx/", "abstractEntity");
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: be.icredit.einvoice.proxy.customerdaoservice
*
*/
public ObjectFactory() {
}
/**
* Create an instance of {@link Update }
*
*/
public Update createUpdate() {
return new Update();
}
/**
* Create an instance of {@link CustomerFilter }
*
*/
public CustomerFilter createCustomerFilter() {
return new CustomerFilter();
}
/**
* Create an instance of {@link UpdateResponse }
*
*/
public UpdateResponse createUpdateResponse() {
return new UpdateResponse();
}
/**
* Create an instance of {@link FindSingle }
*
*/
public FindSingle createFindSingle() {
return new FindSingle();
}
/**
* Create an instance of {@link FindResponse }
*
*/
public FindResponse createFindResponse() {
return new FindResponse();
}
/**
* Create an instance of {@link CreateResponse }
*
*/
public CreateResponse createCreateResponse() {
return new CreateResponse();
}
/**
* Create an instance of {@link FindSingleResponse }
*
*/
public FindSingleResponse createFindSingleResponse() {
return new FindSingleResponse();
}
/**
* Create an instance of {@link Customer }
*
*/
public Customer createCustomer() {
return new Customer();
}
/**
* Create an instance of {@link Create }
*
*/
public Create createCreate() {
return new Create();
}
/**
* Create an instance of {@link Find }
*
*/
public Find createFind() {
return new Find();
}
/**
* Create an instance of {@link Pager }
*
*/
public Pager createPager() {
return new Pager();
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link AbstractFilter }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "abstractFilter")
public JAXBElement<AbstractFilter> createAbstractFilter(AbstractFilter value) {
return new JAXBElement<AbstractFilter>(_AbstractFilter_QNAME, AbstractFilter.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Customer }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "customer")
public JAXBElement<Customer> createCustomer(Customer value) {
return new JAXBElement<Customer>(_Customer_QNAME, Customer.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link FindSingleResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "findSingleResponse")
public JAXBElement<FindSingleResponse> createFindSingleResponse(FindSingleResponse value) {
return new JAXBElement<FindSingleResponse>(_FindSingleResponse_QNAME, FindSingleResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Create }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "create")
public JAXBElement<Create> createCreate(Create value) {
return new JAXBElement<Create>(_Create_QNAME, Create.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Find }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "find")
public JAXBElement<Find> createFind(Find value) {
return new JAXBElement<Find>(_Find_QNAME, Find.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link CreateResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "createResponse")
public JAXBElement<CreateResponse> createCreateResponse(CreateResponse value) {
return new JAXBElement<CreateResponse>(_CreateResponse_QNAME, CreateResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link FindResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "findResponse")
public JAXBElement<FindResponse> createFindResponse(FindResponse value) {
return new JAXBElement<FindResponse>(_FindResponse_QNAME, FindResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link UpdateResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "updateResponse")
public JAXBElement<UpdateResponse> createUpdateResponse(UpdateResponse value) {
return new JAXBElement<UpdateResponse>(_UpdateResponse_QNAME, UpdateResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link FindSingle }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "findSingle")
public JAXBElement<FindSingle> createFindSingle(FindSingle value) {
return new JAXBElement<FindSingle>(_FindSingle_QNAME, FindSingle.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link CustomerFilter }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "customerFilter")
public JAXBElement<CustomerFilter> createCustomerFilter(CustomerFilter value) {
return new JAXBElement<CustomerFilter>(_CustomerFilter_QNAME, CustomerFilter.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Update }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "update")
public JAXBElement<Update> createUpdate(Update value) {
return new JAXBElement<Update>(_Update_QNAME, Update.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link AbstractEntity }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "abstractEntity")
public JAXBElement<AbstractEntity> createAbstractEntity(AbstractEntity value) {
return new JAXBElement<AbstractEntity>(_AbstractEntity_QNAME, AbstractEntity.class, null, value);
}
}
package-info.javaクラスです。
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2014.09.12 at 03:44:51 PM CEST
//
@javax.xml.bind.annotation.XmlSchema(namespace = "http://xxxxxxx/")
package einvoice.proxy.customerdaoservice;
解決するには?
- 元のスキーマが正しいターゲット名前空間を持っていないかのどちらかです。
-
または、何らかの理由で
package-info.java
を投稿してください。
ObjectFactory
と
package-info.java
(の隣に生成する必要があります)。
ObjectFactory
).
実は、インスタンスを作成する際に
ObjectFactory
は、通常の
new
のコンストラクションは問題なく動作します :)
ObjectFactory
は魔法を使いません。これは主にJAXBがアンマーシャルする際に使用されます。
ps. のタグを付けてください。
maven-jaxb2-plugin
-に関連する質問には
maven-jaxb2-plugin
タグを使用することで、より早く私の注意を引くことができます。
関連
-
[解決済み] java.sql.SQLException: ORA-00933: SQL コマンドが正しく終了していません。
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] javax.mail.MessagingException: SMTPホストに接続できませんでしたか?
-
[解決済み] 1行目2列目でBEGIN_ARRAYを期待したが、BEGIN_OBJECTだった。
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] java.io.IOException。DER長の短い読み取り
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] JavaでFileFilterを作るには?
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] java.lang.ClassNotFoundException: クラス com.ibm.db2.jcc.DB2Driver が Worklight プラットフォームまたはプロジェクトに見つかりませんでした。
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] Mavenです。JARは空になります - 含有するためにマークされたコンテンツがありません
-
[解決済み] publicId と systemId の間に空白が必要です。
-
[解決済み] 文字列の長さに応じて文字列をトリミングする
-
[解決済み] 文字列の巻き方