javax.xml.namespace in dynamischem Webprojekt offenbar doppelt vorhanden - was tun?

pkm

Bekanntes Mitglied
Hier habe ich ein Tutorial gefunden, das die Erstellung eines SOAP-Services mitsamt zugehörigem Client erklärt.

So simpel das Tutorium auch ist, scheitere ich, wenn ich einen Rechtsklick auf das Projekt mache, um dann mit new->WebService Service und Client zu erstellen an einem Ding:

Im Clienten kommt immer der Fehler "the package javax.xml.namespace" is accessible from more than one module.

Jetzt kann es sein, dass ich den Fehler durch ausschließen der stax-api beim Kompilieren beheben kann - siehe hier.

Nun mein Problem - wie kann ich das stax ausschließen in einem dynamischen Webprojekt, das kein mvn-Projekt ist?

Hier der Code des Cienten:

Java:
/**
 * HelloWorldServiceLocator.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
 */

package org.arpit.javapostsforlearning.webservices;

public class HelloWorldServiceLocator extends org.apache.axis.client.Service implements org.arpit.javapostsforlearning.webservices.HelloWorldService {

    public HelloWorldServiceLocator() {
    }


    public HelloWorldServiceLocator(org.apache.axis.EngineConfiguration config) {
        super(config);
    }

    public HelloWorldServiceLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException {
        super(wsdlLoc, sName);
    }

    // Use to get a proxy class for HelloWorld
    private java.lang.String HelloWorld_address = "http://localhost:8080/SimpleSOAPExample/services/HelloWorld";

    public java.lang.String getHelloWorldAddress() {
        return HelloWorld_address;
    }

    // The WSDD service name defaults to the port name.
    private java.lang.String HelloWorldWSDDServiceName = "HelloWorld";

    public java.lang.String getHelloWorldWSDDServiceName() {
        return HelloWorldWSDDServiceName;
    }

    public void setHelloWorldWSDDServiceName(java.lang.String name) {
        HelloWorldWSDDServiceName = name;
    }

    public org.arpit.javapostsforlearning.webservices.HelloWorld getHelloWorld() throws javax.xml.rpc.ServiceException {
       java.net.URL endpoint;
        try {
            endpoint = new java.net.URL(HelloWorld_address);
        }
        catch (java.net.MalformedURLException e) {
            throw new javax.xml.rpc.ServiceException(e);
        }
        return getHelloWorld(endpoint);
    }

    public org.arpit.javapostsforlearning.webservices.HelloWorld getHelloWorld(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
        try {
            org.arpit.javapostsforlearning.webservices.HelloWorldSoapBindingStub _stub = new org.arpit.javapostsforlearning.webservices.HelloWorldSoapBindingStub(portAddress, this);
            _stub.setPortName(getHelloWorldWSDDServiceName());
            return _stub;
        }
        catch (org.apache.axis.AxisFault e) {
            return null;
        }
    }

    public void setHelloWorldEndpointAddress(java.lang.String address) {
        HelloWorld_address = address;
    }

    /**
     * For the given interface, get the stub implementation.
     * If this service has no port for the given interface,
     * then ServiceException is thrown.
     */
    public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
        try {
            if (org.arpit.javapostsforlearning.webservices.HelloWorld.class.isAssignableFrom(serviceEndpointInterface)) {
                org.arpit.javapostsforlearning.webservices.HelloWorldSoapBindingStub _stub = new org.arpit.javapostsforlearning.webservices.HelloWorldSoapBindingStub(new java.net.URL(HelloWorld_address), this);
                _stub.setPortName(getHelloWorldWSDDServiceName());
                return _stub;
            }
        }
        catch (java.lang.Throwable t) {
            throw new javax.xml.rpc.ServiceException(t);
        }
        throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface:  " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
    }

    /**
     * For the given interface, get the stub implementation.
     * If this service has no port for the given interface,
     * then ServiceException is thrown.
     */
    public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
        if (portName == null) {
            return getPort(serviceEndpointInterface);
        }
        java.lang.String inputPortName = portName.getLocalPart();
        if ("HelloWorld".equals(inputPortName)) {
            return getHelloWorld();
        }
        else  {
            java.rmi.Remote _stub = getPort(serviceEndpointInterface);
            ((org.apache.axis.client.Stub) _stub).setPortName(portName);
            return _stub;
        }
    }

    public javax.xml.namespace.QName getServiceName() {
        return new javax.xml.namespace.QName("http://webservices.javapostsforlearning.arpit.org", "HelloWorldService");
    }

    private java.util.HashSet ports = null;

    public java.util.Iterator getPorts() {
        if (ports == null) {
            ports = new java.util.HashSet();
            ports.add(new javax.xml.namespace.QName("http://webservices.javapostsforlearning.arpit.org", "HelloWorld"));
        }
        return ports.iterator();
    }

    /**
    * Set the endpoint address for the specified port name.
    */
    public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
        
if ("HelloWorld".equals(portName)) {
            setHelloWorldEndpointAddress(address);
        }
        else
{ // Unknown Port Name
            throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);
        }
    }

    /**
    * Set the endpoint address for the specified port name.
    */
    public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
        setEndpointAddress(portName.getLocalPart(), address);
    }

}
 

osion

Bekanntes Mitglied
Um das stax-api in einem dynamischen Webprojekt auszuschließen, das kein mvn-Projekt ist, kannst du versuchen, es als Abhängigkeit in deiner Build- oder Dependency-Management-Software (z.B. Gradle oder Maven) auszuschließen. Wenn du keine solche Software verwendest, kannst du versuchen, die stax-api-Bibliothek manuell von deinem Klassenpfad zu entfernen und sie dann erneut zu kompilieren und zu starten.
 

Oneixee5

Top Contributor
Hast du mal in dem Artikel die Version vom Tomcat beachtet, inkl. das Datum der Kommentare?
Wenn man Google verwendet um Hilfe zu finden, dann stell das Datum der Suche nicht älter als ein Jahr.
 

mrBrown

Super-Moderator
Mitarbeiter
Um das stax-api in einem dynamischen Webprojekt auszuschließen, das kein mvn-Projekt ist, kannst du versuchen, es als Abhängigkeit in deiner Build- oder Dependency-Management-Software (z.B. Gradle oder Maven) auszuschließen. Wenn du keine solche Software verwendest, kannst du versuchen, die stax-api-Bibliothek manuell von deinem Klassenpfad zu entfernen und sie dann erneut zu kompilieren und zu starten.
Da letztens ChatGPT hier im Forum schon mal Thema war - lässt du deine Antworten damit generieren? Das hier klingen einfach original wie eine davon geschriebene Antwort
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Cast . javax.activation.DataHandler in JAX-WS SOA 1
G WSDL namespace schemaLocation SOA 2

Ähnliche Java Themen

Neue Themen


Oben