Webservice异常潜在原因

Webservice exception potential causes

我遇到以下异常,但无法找出导致它的原因。调用 getSlownikiOfflinePort 方法时抛出以下异常。

@WebEndpoint(name = "SlownikiOfflinePort")
    public SlownikiOffline getSlownikiOfflinePort() {
        return super.getPort(new QName("http://gugik.gov.pl/schemas/slowniki-offline-service/1.0", "SlownikiOfflinePort"), SlownikiOffline.class);
    }

super class is javax.xml.ws.Service for this method is

javax.xml.ws.WebServiceException: class pl.package.OfflineService.PobierzPelne do not have a property of the name {http://gugik.gov.pl/schemas/slowniki-offline-service/1.0}teryt
    at com.sun.xml.ws.client.sei.BodyBuilder$DocLit.<init>(BodyBuilder.java:245) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.client.sei.StubHandler.<init>(StubHandler.java:132) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.db.DatabindingImpl.initStubHandlers(DatabindingImpl.java:162) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.db.DatabindingImpl.<init>(DatabindingImpl.java:107) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:74) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:58) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.db.DatabindingFactoryImpl.createRuntime(DatabindingFactoryImpl.java:120) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.client.WSServiceDelegate.buildRuntimeModel(WSServiceDelegate.java:882) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.client.WSServiceDelegate.createSEIPortInfo(WSServiceDelegate.java:899) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate.java:862) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:451) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:420) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:402) ~[jaxws-rt.jar:2.3.1]
    at javax.xml.ws.Service.getPort(Service.java:169) ~[jaxws-api.jar:na]
    at pl.package.OfflineService.getOfflinePort(SlownikiOfflineService.java:72) ~[classes/:na]  
..............................................................................................................................................................................................
Caused by: javax.xml.bind.JAXBException: {http://gugik.gov.pl/schemas/slowniki-offline-service/1.0}teryt is not a valid property on class pl.package.OfflineService.PobierzPelne
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getElementPropertyAccessor(JAXBContextImpl.java:960) ~[jaxb-runtime.jar:2.3.1]
    at com.sun.xml.ws.db.glassfish.JAXBRIContextWrapper.getElementPropertyAccessor(JAXBRIContextWrapper.java:121) ~[jaxws-rt.jar:2.3.1]
    at com.sun.xml.ws.client.sei.BodyBuilder$DocLit.<init>(BodyBuilder.java:242) ~[jaxws-rt.jar:2.3.1]
    ... 107 common frames omitted

出于某种原因,{http://gugik.gov.pl/schemas/slowniki-offline-service/1.0}(服务地址)被添加到 属性 名称中,仅用于此 class,这会导致异常。

问题是这个 class 是从 WSDL 和其他 classes 一起生成的,并且由于某种原因是唯一导致该异常或将服务地址附加到它的 属性 姓名。由于它是库代码中抛出的异常,我无法处理或修改它(在调试模式下从 属性 名称中删除地址使其在 Intellij 代码评估工具中工作)。

class代码导致异常:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "pobierzPelne", propOrder = {
    "teryt"
})
public class PobierzPelne {

    @XmlElement(required = true)
    protected String teryt;

    /**
     * Gets the value of the teryt property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getTeryt() {
        return teryt;
    }

    /**
     * Sets the value of the teryt property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setTeryt(String value) {
        this.teryt = value;
    }

}

这里是 class 不会引发异常的代码之一:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "pobierzUlice", propOrder = {
    "iipPn",
    "iipId",
    "pelna"
})
public class PobierzUlice {

    @XmlElement(namespace = "")
    protected String iipPn;
    @XmlElement(namespace = "")
    protected String iipId;
    @XmlElement(namespace = "")
    protected boolean pelna;

    /**
     * Gets the value of the iipPn property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getIipPn() {
        return iipPn;
    }

    /**
     * Sets the value of the iipPn property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setIipPn(String value) {
        this.iipPn = value;
    }

    /**
     * Gets the value of the iipId property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getIipId() {
        return iipId;
    }

    /**
     * Sets the value of the iipId property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setIipId(String value) {
        this.iipId = value;
    }

    /**
     * Gets the value of the pelna property.
     * @return value
     */
    public boolean isPelna() {
        return pelna;
    }

    /**
     * Sets the value of the pelna property.
     * @param value value
     */
    public void setPelna(boolean value) {
        this.pelna = value;
    }
}

错误是由于缺少生成的包-info.java 文件引起的。原来是被删了