features
parameter will have their default values.
+ * @return
+ * returns HelloService
+ */
+ @WebEndpoint(name = "HelloServicePort")
+ public HelloService getHelloServicePort(WebServiceFeature... features) {
+ return super.getPort(new QName("http://com.redhat.gss.example.soap/", "HelloServicePort"), HelloService.class, features);
+ }
+
+}
+
diff --git a/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws4429/JBWS4429TestCase.java b/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws4429/JBWS4429TestCase.java
new file mode 100644
index 000000000..c0ce5a792
--- /dev/null
+++ b/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws4429/JBWS4429TestCase.java
@@ -0,0 +1,72 @@
+/*
+ * 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.jboss.test.ws.jaxws.cxf.jbws4429;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.RunAsClient;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.FileAsset;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.wsf.test.JBossWSTest;
+import org.jboss.wsf.test.JBossWSTestHelper;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
+import java.io.File;
+import java.net.URL;
+
+@ExtendWith(ArquillianExtension.class)
+public class JBWS4429TestCase extends JBossWSTest {
+ private static final String DEP = "jaxws-cxf-jbws4429";
+
+ @ArquillianResource
+ private URL baseURL;
+
+ @Deployment(name = DEP, testable = false)
+ public static WebArchive createDeployment() {
+ WebArchive archive = ShrinkWrap.create(WebArchive.class, DEP + ".war");
+ archive.setManifest(new StringAsset("Manifest-Version: 1.0\n"
+ + "Dependencies: org.apache.cxf org.jboss.logging \n"))
+ .addClasses(HelloServiceImpl.class, LoggingHandler.class)
+ .add(new FileAsset(new File(JBossWSTestHelper.getTestResourcesDir() + "/jaxws/cxf/jbws4429/handlers.xml")), "WEB-INF/classes/handlers.xml")
+ ;
+ return archive;
+ }
+
+ @Test
+ @RunAsClient
+ public void testWS() throws Exception {
+ URL wsdlURL = JBWS4429TestCase.getResourceURL("/jaxws/cxf/jbws4429/WEB-INF/wsdl/HelloService.wsdl");
+ HelloServiceService clientService = new HelloServiceService(wsdlURL);
+ HelloService service = clientService.getHelloServicePort();
+ try {
+ service.sayHello("Jim");
+ Assertions.fail("sayHello() call should fail");
+ } catch (Exception e) {
+ Assertions.assertEquals("JBWS024118: BindingOperation is missing for authorization", e.getMessage());
+ }
+
+ }
+
+
+}
diff --git a/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws4429/LoggingHandler.java b/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws4429/LoggingHandler.java
new file mode 100644
index 000000000..acd9933d7
--- /dev/null
+++ b/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws4429/LoggingHandler.java
@@ -0,0 +1,55 @@
+/*
+ * 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.jboss.test.ws.jaxws.cxf.jbws4429;
+
+import javax.xml.namespace.QName;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPHandler;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
+import java.util.Collections;
+import java.util.Set;
+
+public class LoggingHandler implements SOAPHandlerAn 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 _SayHelloResponse_QNAME = new QName("http://com.redhat.gss.example.soap/", "sayHelloResponse");
+ private final static QName _SayHello_QNAME = new QName("http://com.redhat.gss.example.soap/", "sayHello");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.redhat.gss.example.soap
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link SayHello }
+ *
+ */
+ public SayHello createSayHello() {
+ return new SayHello();
+ }
+
+ /**
+ * Create an instance of {@link SayHelloResponse }
+ *
+ */
+ public SayHelloResponse createSayHelloResponse() {
+ return new SayHelloResponse();
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link SayHelloResponse }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://com.redhat.gss.example.soap/", name = "sayHelloResponse")
+ public JAXBElement Java class for sayHello complex type.
+ *
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * Java class for sayHelloResponse complex type.
+ *
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ *
+ * <complexType name="sayHello">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "sayHello", propOrder = {
+ "arg0"
+})
+public class SayHello {
+
+ protected String arg0;
+
+ /**
+ * Gets the value of the arg0 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getArg0() {
+ return arg0;
+ }
+
+ /**
+ * Sets the value of the arg0 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setArg0(String value) {
+ this.arg0 = value;
+ }
+
+}
+
diff --git a/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws4429/SayHelloResponse.java b/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws4429/SayHelloResponse.java
new file mode 100644
index 000000000..54283af07
--- /dev/null
+++ b/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws4429/SayHelloResponse.java
@@ -0,0 +1,77 @@
+/*
+ * 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.jboss.test.ws.jaxws.cxf.jbws4429;
+
+import jakarta.xml.bind.annotation.*;
+
+
+/**
+ *
+ * <complexType name="sayHelloResponse">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="return" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "sayHelloResponse", propOrder = {
+ "_return"
+})
+public class SayHelloResponse {
+
+ @XmlElement(name = "return")
+ protected String _return;
+
+ /**
+ * Gets the value of the return property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getReturn() {
+ return _return;
+ }
+
+ /**
+ * Sets the value of the return property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setReturn(String value) {
+ this._return = value;
+ }
+
+}
+
diff --git a/modules/testsuite/cxf-tests/src/test/resources/jaxws/cxf/jbws4429/WEB-INF/wsdl/HelloService.wsdl b/modules/testsuite/cxf-tests/src/test/resources/jaxws/cxf/jbws4429/WEB-INF/wsdl/HelloService.wsdl
new file mode 100644
index 000000000..f317f2c3c
--- /dev/null
+++ b/modules/testsuite/cxf-tests/src/test/resources/jaxws/cxf/jbws4429/WEB-INF/wsdl/HelloService.wsdl
@@ -0,0 +1,56 @@
+