This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new 1ee2336fce Remove JAX-RPC support. Jakarta EE removed it in Jakarta EE
9.
1ee2336fce is described below
commit 1ee2336fce09d3eb2abcc4b05cd1c184f1c892b5
Author: Mark Thomas <[email protected]>
AuthorDate: Fri Jan 6 16:19:10 2023 +0000
Remove JAX-RPC support. Jakarta EE removed it in Jakarta EE 9.
---
build.properties.default | 18 --
build.xml | 21 --
.../factory/webservices/LocalStrings.properties | 16 -
.../factory/webservices/LocalStrings_de.properties | 16 -
.../factory/webservices/LocalStrings_fr.properties | 16 -
.../factory/webservices/LocalStrings_ja.properties | 16 -
.../factory/webservices/LocalStrings_ko.properties | 16 -
.../webservices/LocalStrings_zh_CN.properties | 16 -
.../naming/factory/webservices/ServiceProxy.java | 148 ---------
.../factory/webservices/ServiceRefFactory.java | 353 ---------------------
res/ide-support/eclipse/eclipse.classpath | 2 -
res/ide-support/idea/tomcat.iml | 18 --
res/ide-support/netbeans/project.xml | 2 +-
webapps/docs/changelog.xml | 4 +
14 files changed, 5 insertions(+), 657 deletions(-)
diff --git a/build.properties.default b/build.properties.default
index d0c86a291a..cd91ba9208 100644
--- a/build.properties.default
+++ b/build.properties.default
@@ -115,24 +115,6 @@ base-maven.loc=https://repo.maven.apache.org/maven2
# Mirror, was used when there were problems with the main SF downloads site
# base-sf.loc=https://sunet.dl.sourceforge.net
-# ----- Webservices - JAX RPC -----
-jaxrpc-lib.version=1.1-rc4
-jaxrpc-lib.checksum.enabled=true
-jaxrpc-lib.checksum.algorithm=MD5|SHA-1
-jaxrpc-lib.checksum.value=4bebba22a4cdb9f68e16c45129770333|fe9371d33dc3e1646d4d13bde19614283eb998b1
-jaxrpc-lib.home=${base.path}/jaxrpc-${jaxrpc-lib.version}
-jaxrpc-lib.jar=${jaxrpc-lib.home}/geronimo-spec-jaxrpc-${jaxrpc-lib.version}.jar
-jaxrpc-lib.loc=${base-maven.loc}/geronimo-spec/geronimo-spec-jaxrpc/${jaxrpc-lib.version}/geronimo-spec-jaxrpc-${jaxrpc-lib.version}.jar
-
-# ----- Webservices - WSDL4J -----
-wsdl4j-lib.version=1.6.3
-wsdl4j-lib.checksum.enabled=true
-wsdl4j-lib.checksum.algorithm=MD5|SHA-1
-wsdl4j-lib.checksum.value=cfc28d89625c5e88589aec7a9aee0208|6d106a6845a3d3477a1560008479312888e94f2f
-wsdl4j-lib.home=${base.path}/wsdl4j-${wsdl4j-lib.version}
-wsdl4j-lib.jar=${wsdl4j-lib.home}/wsdl4j-${wsdl4j-lib.version}.jar
-wsdl4j-lib.loc=${base-maven.loc}/wsdl4j/wsdl4j/${wsdl4j-lib.version}/wsdl4j-${wsdl4j-lib.version}.jar
-
# ----- Eclipse JDT, version 4.7 or later -----#
# See
https://cwiki.apache.org/confluence/display/TOMCAT/Managing+Tomcat%27s+Dependency+on+the+Eclipse+JDT+Core+Batch+Compiler
#
diff --git a/build.xml b/build.xml
index a3fce38255..8f3aa69513 100644
--- a/build.xml
+++ b/build.xml
@@ -219,8 +219,6 @@
<path id="compile.classpath">
<pathelement location="${bnd.jar}"/>
<pathelement location="${jdt.jar}"/>
- <pathelement location="${jaxrpc-lib.jar}"/>
- <pathelement location="${wsdl4j-lib.jar}"/>
<pathelement location="${migration-lib.jar}"/>
</path>
@@ -614,7 +612,6 @@
<exclude name="org/apache/naming/factory/ResourceLinkFactory*" />
<exclude name="org/apache/naming/factory/SendMailFactory*" />
<exclude name="org/apache/naming/factory/TransactionFactory*" />
- <exclude name="org/apache/naming/factory/webservices/*" />
<exclude name="org/apache/naming/LookupRef*" />
<exclude name="org/apache/naming/NameParserImpl*" />
<exclude name="org/apache/naming/NamingContextBindingsEnumeration*" />
@@ -3288,24 +3285,6 @@ asf.ldap.username=${release.asfusername}
<param name="checksum.value" value="${jdt.checksum.value}"/>
</antcall>
- <!-- Download WS API -->
- <antcall target="downloadfile">
- <param name="sourcefile" value="${jaxrpc-lib.loc}"/>
- <param name="destfile" value="${jaxrpc-lib.jar}"/>
- <param name="destdir" value="${jaxrpc-lib.home}"/>
- <param name="checksum.enabled" value="${jaxrpc-lib.checksum.enabled}"/>
- <param name="checksum.algorithm"
value="${jaxrpc-lib.checksum.algorithm}"/>
- <param name="checksum.value" value="${jaxrpc-lib.checksum.value}"/>
- </antcall>
- <antcall target="downloadfile">
- <param name="sourcefile" value="${wsdl4j-lib.loc}"/>
- <param name="destfile" value="${wsdl4j-lib.jar}"/>
- <param name="destdir" value="${wsdl4j-lib.home}"/>
- <param name="checksum.enabled" value="${wsdl4j-lib.checksum.enabled}"/>
- <param name="checksum.algorithm"
value="${wsdl4j-lib.checksum.algorithm}"/>
- <param name="checksum.value" value="${wsdl4j-lib.checksum.value}"/>
- </antcall>
-
<!-- Tomcat Migration Tool for Jakarta EE -->
<antcall target="downloadfile">
<param name="sourcefile" value="${migration-lib.loc}"/>
diff --git a/java/org/apache/naming/factory/webservices/LocalStrings.properties
b/java/org/apache/naming/factory/webservices/LocalStrings.properties
deleted file mode 100644
index 0c5d17eda4..0000000000
--- a/java/org/apache/naming/factory/webservices/LocalStrings.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-serviceProxy.portNotFound=Port-component-ref [{0}] not found
diff --git
a/java/org/apache/naming/factory/webservices/LocalStrings_de.properties
b/java/org/apache/naming/factory/webservices/LocalStrings_de.properties
deleted file mode 100644
index a1f6ad308c..0000000000
--- a/java/org/apache/naming/factory/webservices/LocalStrings_de.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-serviceProxy.portNotFound=Kein Port mit dem Namen [{0}] gefunden
diff --git
a/java/org/apache/naming/factory/webservices/LocalStrings_fr.properties
b/java/org/apache/naming/factory/webservices/LocalStrings_fr.properties
deleted file mode 100644
index 94053ed884..0000000000
--- a/java/org/apache/naming/factory/webservices/LocalStrings_fr.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-serviceProxy.portNotFound=Le port-component-ref [{0}] n''a pas été trouvé
diff --git
a/java/org/apache/naming/factory/webservices/LocalStrings_ja.properties
b/java/org/apache/naming/factory/webservices/LocalStrings_ja.properties
deleted file mode 100644
index 74c563de08..0000000000
--- a/java/org/apache/naming/factory/webservices/LocalStrings_ja.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-serviceProxy.portNotFound=port-component-ref [{0}] が見つかりません
diff --git
a/java/org/apache/naming/factory/webservices/LocalStrings_ko.properties
b/java/org/apache/naming/factory/webservices/LocalStrings_ko.properties
deleted file mode 100644
index cbb7afceb5..0000000000
--- a/java/org/apache/naming/factory/webservices/LocalStrings_ko.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-serviceProxy.portNotFound=Port-component-ref [{0}]을(를) 찾을 수 없습니다.
diff --git
a/java/org/apache/naming/factory/webservices/LocalStrings_zh_CN.properties
b/java/org/apache/naming/factory/webservices/LocalStrings_zh_CN.properties
deleted file mode 100644
index 08d32485b0..0000000000
--- a/java/org/apache/naming/factory/webservices/LocalStrings_zh_CN.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-serviceProxy.portNotFound=找不到端口组件ref[{0}]
diff --git a/java/org/apache/naming/factory/webservices/ServiceProxy.java
b/java/org/apache/naming/factory/webservices/ServiceProxy.java
deleted file mode 100644
index d6c03b1cef..0000000000
--- a/java/org/apache/naming/factory/webservices/ServiceProxy.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.naming.factory.webservices;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.rmi.Remote;
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import javax.xml.namespace.QName;
-import javax.xml.rpc.Service;
-import javax.xml.rpc.ServiceException;
-
-import org.apache.naming.StringManager;
-
-/**
- * Object proxy for Web Services.
- *
- * @author Fabien Carrion
- */
-public class ServiceProxy implements InvocationHandler {
-
- private static final StringManager sm =
StringManager.getManager(ServiceProxy.class);
-
- /**
- * Service object.
- * used for delegation
- */
- private final Service service;
-
- /**
- * changing behavior to method : Service.getPort(QName, Class)
- */
- private static Method portQNameClass = null;
-
- /**
- * changing behavior to method : Service.getPort(Class)
- */
- private static Method portClass = null;
-
- /**
- * PortComponentRef list
- */
- private Hashtable<String,QName> portComponentRef = null;
-
- /**
- * Constructs a new ServiceProxy wrapping given Service instance.
- * @param service the wrapped Service instance
- * @throws ServiceException should be never thrown
- */
- public ServiceProxy(Service service) throws ServiceException {
- this.service = service;
- try {
- portQNameClass = Service.class.getDeclaredMethod("getPort", new
Class[]{QName.class, Class.class});
- portClass = Service.class.getDeclaredMethod("getPort", new
Class[]{Class.class});
- } catch (Exception e) {
- throw new ServiceException(e);
- }
- }
-
- /**
- * @see InvocationHandler#invoke(Object, Method, Object[])
- */
- @Override
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
-
- if (portQNameClass.equals(method)) {
- return getProxyPortQNameClass(args);
- }
-
- if (portClass.equals(method)) {
- return getProxyPortClass(args);
- }
-
- try {
- return method.invoke(service, args);
- } catch (InvocationTargetException ite) {
- throw ite.getTargetException();
- }
- }
-
- /**
- * @param args Method call arguments
- * @return Returns the correct Port
- * @throws ServiceException if port's QName is an unknown Port (not
defined in WSDL).
- */
- private Object getProxyPortQNameClass(Object[] args) throws
ServiceException {
- QName name = (QName) args[0];
- String nameString = name.getLocalPart();
- Class<?> serviceendpointClass = (Class<?>) args[1];
-
- for (@SuppressWarnings("unchecked") Iterator<QName> ports =
service.getPorts(); ports.hasNext();) {
- QName portName = ports.next();
- String portnameString = portName.getLocalPart();
- if (portnameString.equals(nameString)) {
- return service.getPort(name, serviceendpointClass);
- }
- }
-
- // no ports have been found
- throw new ServiceException(sm.getString("serviceProxy.portNotFound",
name));
- }
-
- /**
- * @param portComponentRef List
- */
- public void setPortComponentRef(Hashtable<String,QName> portComponentRef) {
- this.portComponentRef = portComponentRef;
- }
-
- /**
- * @param args Method call arguments
- * @return Returns the correct Port
- * @throws ServiceException if port's QName is an unknown Port
- */
- private Remote getProxyPortClass(Object[] args) throws ServiceException {
- Class<?> serviceendpointClass = (Class<?>) args[0];
-
- if (this.portComponentRef == null) {
- return service.getPort(serviceendpointClass);
- }
-
- QName portname =
this.portComponentRef.get(serviceendpointClass.getName());
- if (portname != null) {
- return service.getPort(portname, serviceendpointClass);
- } else {
- return service.getPort(serviceendpointClass);
- }
- }
-
-}
diff --git a/java/org/apache/naming/factory/webservices/ServiceRefFactory.java
b/java/org/apache/naming/factory/webservices/ServiceRefFactory.java
deleted file mode 100644
index d58933c8ce..0000000000
--- a/java/org/apache/naming/factory/webservices/ServiceRefFactory.java
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.naming.factory.webservices;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
-import javax.naming.RefAddr;
-import javax.naming.spi.ObjectFactory;
-import javax.wsdl.Definition;
-import javax.wsdl.Port;
-import javax.wsdl.extensions.ExtensibilityElement;
-import javax.wsdl.extensions.soap.SOAPAddress;
-import javax.wsdl.factory.WSDLFactory;
-import javax.wsdl.xml.WSDLReader;
-import javax.xml.namespace.QName;
-import javax.xml.rpc.Service;
-import javax.xml.rpc.ServiceFactory;
-import javax.xml.rpc.handler.Handler;
-import javax.xml.rpc.handler.HandlerChain;
-import javax.xml.rpc.handler.HandlerInfo;
-import javax.xml.rpc.handler.HandlerRegistry;
-
-import org.apache.naming.HandlerRef;
-import org.apache.naming.ServiceRef;
-
-/**
- * Object factory for Web Services.
- *
- * @author Fabien Carrion
- */
-public class ServiceRefFactory implements ObjectFactory {
-
- /**
- * Create a new serviceref instance.
- *
- * @param obj The reference object describing the webservice
- */
- @Override
- public Object getObjectInstance(Object obj, Name name, Context nameCtx,
Hashtable<?,?> environment)
- throws Exception {
-
- if (obj instanceof ServiceRef) {
- ServiceRef ref = (ServiceRef) obj;
-
- // ClassLoader
- ClassLoader tcl = Thread.currentThread().getContextClassLoader();
- if (tcl == null) {
- tcl = this.getClass().getClassLoader();
- }
- ServiceFactory factory = ServiceFactory.newInstance();
- javax.xml.rpc.Service service = null;
-
- // Service Interface
- RefAddr tmp = ref.get(ServiceRef.SERVICE_INTERFACE);
- String serviceInterface = null;
- if (tmp != null) {
- serviceInterface = (String) tmp.getContent();
- }
-
- // WSDL
- tmp = ref.get(ServiceRef.WSDL);
- String wsdlRefAddr = null;
- if (tmp != null) {
- wsdlRefAddr = (String) tmp.getContent();
- }
-
- // PortComponent
- Hashtable<String,QName> portComponentRef = new Hashtable<>();
-
- // Create QName object
- QName serviceQname = null;
- tmp = ref.get(ServiceRef.SERVICE_LOCAL_PART);
- if (tmp != null) {
- String serviceLocalPart = (String) tmp.getContent();
- tmp = ref.get(ServiceRef.SERVICE_NAMESPACE);
- if (tmp == null) {
- serviceQname = new QName(serviceLocalPart);
- } else {
- String serviceNamespace = (String) tmp.getContent();
- serviceQname = new QName(serviceNamespace,
serviceLocalPart);
- }
- }
- Class<?> serviceInterfaceClass = null;
-
- // Create service object
- if (serviceInterface == null) {
- if (serviceQname == null) {
- throw new NamingException("Could not create service-ref
instance");
- }
- try {
- if (wsdlRefAddr == null) {
- service = factory.createService( serviceQname );
- } else {
- service = factory.createService(new
URI(wsdlRefAddr).toURL(), serviceQname);
- }
- } catch (Exception e) {
- NamingException ex = new NamingException("Could not create
service");
- ex.initCause(e);
- throw ex;
- }
- } else {
- // Loading service Interface
- try {
- serviceInterfaceClass = tcl.loadClass(serviceInterface);
- } catch(ClassNotFoundException e) {
- NamingException ex = new NamingException("Could not load
service Interface");
- ex.initCause(e);
- throw ex;
- }
- if (serviceInterfaceClass == null) {
- throw new NamingException("Could not load service
Interface");
- }
- try {
- if (wsdlRefAddr == null) {
- if
(!Service.class.isAssignableFrom(serviceInterfaceClass)) {
- throw new NamingException("service Interface
should extend javax.xml.rpc.Service");
- }
- service = factory.loadService(serviceInterfaceClass);
- } else {
- service = factory.loadService(
- new URI(wsdlRefAddr).toURL(),
serviceInterfaceClass, new Properties());
- }
- } catch (Exception e) {
- NamingException ex = new NamingException("Could not create
service");
- ex.initCause(e);
- throw ex;
- }
- }
- if (service == null) {
- throw new NamingException("Cannot create service object");
- }
- serviceQname = service.getServiceName();
- serviceInterfaceClass = service.getClass();
- if (wsdlRefAddr != null) {
- try {
- WSDLFactory wsdlfactory = WSDLFactory.newInstance();
- WSDLReader reader = wsdlfactory.newWSDLReader();
- reader.setFeature("javax.wsdl.importDocuments", true);
- Definition def = reader.readWSDL(new
URI(wsdlRefAddr).toURL().toExternalForm());
-
- javax.wsdl.Service wsdlservice =
def.getService(serviceQname);
- @SuppressWarnings("unchecked") // Can't change the API
- Map<String,?> ports = wsdlservice.getPorts();
- Method m =
serviceInterfaceClass.getMethod("setEndpointAddress",
- new Class[] { java.lang.String.class,
java.lang.String.class });
- for (String portName : ports.keySet()) {
- Port port = wsdlservice.getPort(portName);
- String endpoint = getSOAPLocation(port);
- m.invoke(service, new Object[]{port.getName(),
endpoint});
- portComponentRef.put(endpoint, new
QName(port.getName()));
- }
- } catch (Exception e) {
- if (e instanceof InvocationTargetException) {
- Throwable cause = e.getCause();
- if (cause instanceof ThreadDeath) {
- throw (ThreadDeath) cause;
- }
- if (cause instanceof VirtualMachineError) {
- throw (VirtualMachineError) cause;
- }
- }
- NamingException ex = new NamingException("Error while
reading Wsdl File");
- ex.initCause(e);
- throw ex;
- }
- }
-
- ServiceProxy proxy = new ServiceProxy(service);
-
- // Use port-component-ref
- for (int i = 0; i < ref.size(); i++) {
- if
(ServiceRef.SERVICEENDPOINTINTERFACE.equals(ref.get(i).getType())) {
- String serviceendpoint = "";
- String portlink = "";
- serviceendpoint = (String) ref.get(i).getContent();
- if (ServiceRef.PORTCOMPONENTLINK.equals(ref.get(i +
1).getType())) {
- i++;
- portlink = (String) ref.get(i).getContent();
- }
- portComponentRef.put(serviceendpoint, new QName(portlink));
-
- }
- }
- proxy.setPortComponentRef(portComponentRef);
-
- // Instantiate service with proxy class
- Class<?>[] serviceInterfaces =
serviceInterfaceClass.getInterfaces();
-
- Class<?>[] interfaces = Arrays.copyOf(serviceInterfaces,
serviceInterfaces.length + 1);
- interfaces[interfaces.length - 1] = javax.xml.rpc.Service.class;
-
- Object proxyInstance = null;
- try {
- proxyInstance = Proxy.newProxyInstance(tcl, interfaces, proxy);
- } catch (IllegalArgumentException e) {
- proxyInstance = Proxy.newProxyInstance(tcl, serviceInterfaces,
proxy);
- }
-
- // Use handler
- if (ref.getHandlersSize() > 0) {
-
- HandlerRegistry handlerRegistry = service.getHandlerRegistry();
- List<String> soaproles = new ArrayList<>();
-
- while (ref.getHandlersSize() > 0) {
- HandlerRef handlerRef = ref.getHandler();
- HandlerInfo handlerInfo = new HandlerInfo();
-
- // Loading handler Class
- tmp = handlerRef.get(HandlerRef.HANDLER_CLASS);
- if ((tmp == null) || (tmp.getContent() == null)) {
- break;
- }
- Class<?> handlerClass = null;
- try {
- handlerClass = tcl.loadClass((String)
tmp.getContent());
- } catch(ClassNotFoundException e) {
- break;
- }
-
- // Load all data relative to the handler : SOAPHeaders,
config init element,
- // portNames to be set on
- List<QName> headers = new ArrayList<>();
- Hashtable<String,String> config = new Hashtable<>();
- List<String> portNames = new ArrayList<>();
- for (int i = 0; i < handlerRef.size(); i++) {
- if
(HandlerRef.HANDLER_LOCALPART.equals(handlerRef.get(i).getType())) {
- String localpart = "";
- String namespace = "";
- localpart = (String)
handlerRef.get(i).getContent();
- if
(HandlerRef.HANDLER_NAMESPACE.equals(handlerRef.get(i + 1).getType())) {
- i++;
- namespace = (String)
handlerRef.get(i).getContent();
- }
- QName header = new QName(namespace, localpart);
- headers.add(header);
- } else if
(HandlerRef.HANDLER_PARAMNAME.equals(handlerRef.get(i).getType())) {
- String paramName = "";
- String paramValue = "";
- paramName = (String)
handlerRef.get(i).getContent();
- if
(HandlerRef.HANDLER_PARAMVALUE.equals(handlerRef.get(i + 1).getType())) {
- i++;
- paramValue = (String)
handlerRef.get(i).getContent();
- }
- config.put(paramName, paramValue);
- } else if
(HandlerRef.HANDLER_SOAPROLE.equals(handlerRef.get(i).getType())) {
- String soaprole = "";
- soaprole = (String) handlerRef.get(i).getContent();
- soaproles.add(soaprole);
- } else if
(HandlerRef.HANDLER_PORTNAME.equals(handlerRef.get(i).getType())) {
- String portName = "";
- portName = (String) handlerRef.get(i).getContent();
- portNames.add(portName);
- }
- }
-
- // Set the handlers information
- handlerInfo.setHandlerClass(handlerClass);
- handlerInfo.setHeaders(headers.toArray(new QName[0]));
- handlerInfo.setHandlerConfig(config);
-
- if (!portNames.isEmpty()) {
- for (String portName : portNames) {
- initHandlerChain(new QName(portName),
handlerRegistry,
- handlerInfo, soaproles);
- }
- } else {
- Enumeration<QName> e = portComponentRef.elements();
- while(e.hasMoreElements()) {
- initHandlerChain(e.nextElement(), handlerRegistry,
handlerInfo, soaproles);
- }
- }
- }
- }
-
- return proxyInstance;
-
- }
-
- return null;
-
- }
-
- /**
- * @param port analyzed port
- * @return Returns the endpoint URL of the given Port
- */
- private String getSOAPLocation(Port port) {
- String endpoint = null;
- @SuppressWarnings("unchecked") // Can't change the API
- List<ExtensibilityElement> extensions =
port.getExtensibilityElements();
- for (ExtensibilityElement ext : extensions) {
- if (ext instanceof SOAPAddress) {
- SOAPAddress addr = (SOAPAddress) ext;
- endpoint = addr.getLocationURI();
- }
- }
- return endpoint;
- }
-
-
- private void initHandlerChain(QName portName, HandlerRegistry
handlerRegistry,
- HandlerInfo handlerInfo, List<String> soaprolesToAdd) {
- HandlerChain handlerChain = (HandlerChain)
handlerRegistry.getHandlerChain(portName);
- @SuppressWarnings("unchecked") // Can't change the API
- Iterator<Handler> iter = handlerChain.iterator();
- while (iter.hasNext()) {
- Handler handler = iter.next();
- handler.init(handlerInfo);
- }
- String[] soaprolesRegistered = handlerChain.getRoles();
- String [] soaproles = new String[soaprolesRegistered.length +
soaprolesToAdd.size()];
- int i;
- for (i = 0;i < soaprolesRegistered.length; i++) {
- soaproles[i] = soaprolesRegistered[i];
- }
- for (int j = 0; j < soaprolesToAdd.size(); j++) {
- soaproles[i+j] = soaprolesToAdd.get(j);
- }
- handlerChain.setRoles(soaproles);
- handlerRegistry.setHandlerChain(portName, handlerChain);
- }
-
-
-}
diff --git a/res/ide-support/eclipse/eclipse.classpath
b/res/ide-support/eclipse/eclipse.classpath
index 3cf7620958..73d3959c3d 100644
--- a/res/ide-support/eclipse/eclipse.classpath
+++ b/res/ide-support/eclipse/eclipse.classpath
@@ -22,8 +22,6 @@
<classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="var" path="ANT_HOME/lib/ant.jar"/>
- <classpathentry kind="var"
path="TOMCAT_LIBS_BASE/jaxrpc-1.1-rc4/geronimo-spec-jaxrpc-1.1-rc4.jar"/>
- <classpathentry kind="var"
path="TOMCAT_LIBS_BASE/wsdl4j-1.6.3/wsdl4j-1.6.3.jar"/>
<classpathentry kind="var" path="TOMCAT_LIBS_BASE/ecj-4.26/ecj-4.26.jar"/>
<classpathentry kind="var"
path="TOMCAT_LIBS_BASE/easymock-4.3/easymock-4.3.jar"/>
<classpathentry kind="var"
path="TOMCAT_LIBS_BASE/hamcrest-2.2/hamcrest-2.2.jar"/>
diff --git a/res/ide-support/idea/tomcat.iml b/res/ide-support/idea/tomcat.iml
index fc552adafc..dbb1ab35c1 100644
--- a/res/ide-support/idea/tomcat.iml
+++ b/res/ide-support/idea/tomcat.iml
@@ -47,24 +47,6 @@
<SOURCES />
</library>
</orderEntry>
- <orderEntry type="module-library">
- <library>
- <CLASSES>
- <root
url="jar://$TOMCAT_BUILD_LIBS$/jaxrpc-1.1-rc4/geronimo-spec-jaxrpc-1.1-rc4.jar!/"
/>
- </CLASSES>
- <JAVADOC />
- <SOURCES />
- </library>
- </orderEntry>
- <orderEntry type="module-library">
- <library>
- <CLASSES>
- <root
url="jar://$TOMCAT_BUILD_LIBS$/wsdl4j-1.6.3/wsdl4j-1.6.3.jar!/" />
- </CLASSES>
- <JAVADOC />
- <SOURCES />
- </library>
- </orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
diff --git a/res/ide-support/netbeans/project.xml
b/res/ide-support/netbeans/project.xml
index 5ea2a822d0..5d593c7cf3 100644
--- a/res/ide-support/netbeans/project.xml
+++ b/res/ide-support/netbeans/project.xml
@@ -178,7 +178,7 @@
-->
<compilation-unit>
<package-root>java</package-root>
- <classpath
mode="compile">${base.path}/jaxrpc-1.1-rc4/geronimo-spec-jaxrpc-1.1-rc4.jar:${base.path}/wsdl4j-1.6.3/wsdl4j-1.6.3.jar:${base.path}/ecj-4.26/ecj-4.26.jar:${base.path}/bnd-6.3.1/biz.aQute.bnd-6.3.1.jar:${base.path}/migration-1.0.6/jakartaee-migration-1.0.6-shaded.jar:${ant.includes}/</classpath>
+ <classpath
mode="compile">${base.path}/ecj-4.26/ecj-4.26.jar:${base.path}/bnd-6.3.1/biz.aQute.bnd-6.3.1.jar:${base.path}/migration-1.0.6/jakartaee-migration-1.0.6-shaded.jar:${ant.includes}/</classpath>
<source-level>1.7</source-level>
</compilation-unit>
<compilation-unit>
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 6a80447ebf..eb07c6e574 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -128,6 +128,10 @@
<bug>66393</bug>: Align <code>ExtendedAccessLogValve</code>'s x-P(XXX)
with the
documentation. (lihan)
</fix>
+ <fix>
+ Remove JAX-RPC support which was removed from the Jakarta EE platform
+ for Jakarta EE 9. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]