Thanks for the reply.

I believe the SpringAppContextAwareObjectSupplier code was broken on this
commit. I didn't notice that until recently. I will be updating the spring
docs too as that
feature is no longer available unfortunately.

commit 9e392c0ae1f0abab3d4956fbf4c0818c9570021e
Author: Andreas Veithen <[email protected]>
Date:   Sat May 6 22:21:10 2017 +0000

    AXIS2-3919: Remove the alternate class loading mechanism:
    - It degrades performance.
    - There is no test coverage for it.
    - With r1794157 in place, in most cases, no temporary files will be
created and there is no need for a fallback mechanism.

On Wed, Mar 10, 2021 at 7:19 AM Kevin Lee <[email protected]>
wrote:

> I'm not entirely sure if we are running JAX-WS services as I am relatively
> new to the codebase (and it is rather legacy, still working on
> understanding it). That code snippet is correct. I believe it was set up to
> work without a Servlet Context before (
> https://axis.apache.org/axis2/java/core/docs/spring.html), but I had to
> switch it to use a ServletContext after making the axis2.xml changes,
> meaning that within our services.xml I changed the ServiceObjectSupplier
> parameters from SpringAppContextAwareObjectSupplier
> to SpringServletContextObjectSupplier. I considered investigating why it
> didn't work as originally set up, but unfortunately I am constrained by a
> timeline. I did not try your ServletContextInitializer code snippet.
>
> Best,
> Kevin
>
> On Wed, Mar 10, 2021 at 11:10 AM robertlazarski <[email protected]>
> wrote:
>
>> For JAX-WS I think you may have just used this entry into axis2.xml?
>>
>> <deployer extension=".aar" directory="services"
>> class="org.apache.axis2.deployment.ServiceDeployer">
>> <serviceBuilderExtension name ="jwsbuilderExt"
>> class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
>> <serviceBuilderExtension name ="wsdlbuilderExt"
>> class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
>> </deployer>
>>
>> On Wed, Mar 10, 2021 at 7:07 AM robertlazarski <[email protected]>
>> wrote:
>>
>>> I see. I am looking at the docs now and am making some updates.
>>>
>>> Are you running JAX-WS services? How did you fix it? Did you use a
>>> ServletContextInitializer like the code I pasted?
>>>
>>> I ask because I don't use JAX-WS myself, so I haven't run into the
>>> problem.
>>>
>>> Regards,
>>> Robert
>>>
>>> On Tue, Mar 9, 2021 at 11:44 AM Kevin Lee <
>>> [email protected]> wrote:
>>>
>>>> Hey Robert,
>>>>
>>>> When I start work on upgrading a dependency between major versions that
>>>> are expected to have breaking changes, I look towards the release
>>>> documentation for the first major version release, which for 1.7 would be
>>>> here <https://axis.apache.org/axis2/java/core/release-notes/1.7.0.html>.
>>>> There is a section at the bottom that has several bullet points dedicated
>>>> towards notable breaking changes, which I think is great. I propose that
>>>> adding the contents of AXIS2-5340
>>>> <https://issues.apache.org/jira/browse/AXIS2-5340> as a bullet point
>>>> would be important as that seems to definitely be a notable breaking 
>>>> change.
>>>>
>>>> Best,
>>>> Kevin
>>>>
>>>> On Tue, Mar 9, 2021 at 3:29 PM robertlazarski <[email protected]>
>>>> wrote:
>>>>
>>>>> I'm not really sure how the axis2.xml docs could be in regards to this
>>>>> issue - do you think you could contribute it?  Just paste what you have in
>>>>> mind here if that is easier.
>>>>>
>>>>> On Tue, Mar 9, 2021 at 11:15 AM Kevin Lee <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hey Robert,
>>>>>>
>>>>>> I managed to upgrade successfully after finding that axis2.xml
>>>>>> change, as the error messages for what to fix were fairly straightforward
>>>>>> afterwards (before, the web service deployment appeared to be failing
>>>>>> silently with a generic EPR reference cannot be found error). I think 
>>>>>> that
>>>>>> axis2.xml deployer inclusion just needs to be more prominent in the
>>>>>> documentation.
>>>>>>
>>>>>> Best,
>>>>>> Kevin
>>>>>>
>>>>>> On Tue, Mar 9, 2021 at 2:59 PM robertlazarski <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> I was wondering if there are any spring boot users. I plan on
>>>>>>> writing some docs as it is harder than it should be.
>>>>>>>
>>>>>>> I was able to successfully implement it though. Where are you stuck
>>>>>>> exactly?
>>>>>>>
>>>>>>> Here's the main init code:
>>>>>>>
>>>>>>> package com.alphatheory.configuration;
>>>>>>>
>>>>>>> import com.mycompany.ATInit;
>>>>>>> import org.apache.logging.log4j.LogManager;
>>>>>>> import org.apache.logging.log4j.Logger;
>>>>>>> import org.apache.axis2.transport.http.AxisServlet;
>>>>>>> import
>>>>>>> org.springframework.boot.web.servlet.ServletContextInitializer;
>>>>>>> import org.springframework.context.annotation.Configuration;
>>>>>>> import
>>>>>>> org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
>>>>>>>
>>>>>>> import org.springframework.core.annotation.Order;
>>>>>>>
>>>>>>> import org.springframework.beans.factory.annotation.Autowired;
>>>>>>> import org.springframework.beans.factory.annotation.Value;
>>>>>>> import org.springframework.context.annotation.Bean;
>>>>>>> import org.springframework.context.annotation.PropertySource;
>>>>>>> import
>>>>>>> org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
>>>>>>>
>>>>>>> import javax.servlet.ServletContext;
>>>>>>> import javax.servlet.ServletRegistration;
>>>>>>>
>>>>>>> import java.util.Set;
>>>>>>>
>>>>>>> @Configuration
>>>>>>> @Order(4)
>>>>>>> @PropertySource("classpath:application.properties")
>>>>>>> public class ATWebAppInitializer implements
>>>>>>> ServletContextInitializer {
>>>>>>>
>>>>>>>     private static final Logger logger =
>>>>>>> LogManager.getLogger(ATWebAppInitializer.class);
>>>>>>>     private static final String SERVICES_MAPPING = "/services/*";
>>>>>>>
>>>>>>>     @Value("${appInstance}")
>>>>>>>     private String appInstance;
>>>>>>>
>>>>>>>     @Value("${appInstanceIP}")
>>>>>>>     private String appInstanceIP;
>>>>>>>
>>>>>>>     @Value("${prodKillSwitchEnabled}")
>>>>>>>     private String prodKillSwitchEnabled;
>>>>>>>
>>>>>>>     @Override
>>>>>>>     public void onStartup(ServletContext container) {
>>>>>>>         String logPrefix = "ATWebAppInitializer , appInstance: " +
>>>>>>> appInstance + " , ";
>>>>>>>         logger.warn(logPrefix + "inside onStartup() ...");
>>>>>>>         // Create the 'root' Spring application context
>>>>>>>         AnnotationConfigWebApplicationContext ctx = new
>>>>>>> AnnotationConfigWebApplicationContext();
>>>>>>>
>>>>>>>         addAxis2Servlet(container, ctx);
>>>>>>>         addATInitServlet(container, ctx);
>>>>>>>         logger.warn(logPrefix + "onStartup() completed ...");
>>>>>>>     }
>>>>>>>
>>>>>>>     private void addAxis2Servlet(ServletContext container,
>>>>>>> AnnotationConfigWebApplicationContext ctx) {
>>>>>>>
>>>>>>>         ServletRegistration.Dynamic dispatcher =
>>>>>>> container.addServlet(
>>>>>>>           "AxisServlet", new AxisServlet());
>>>>>>>         dispatcher.setLoadOnStartup(1);
>>>>>>>         Set<String> mappingConflicts =
>>>>>>> dispatcher.addMapping(SERVICES_MAPPING);
>>>>>>>         if (!mappingConflicts.isEmpty()) {
>>>>>>>             for (String s : mappingConflicts) {
>>>>>>>                 logger.error("Mapping conflict: " + s);
>>>>>>>             }
>>>>>>>             // throw new IllegalStateException("'AxisServlet' could
>>>>>>> not be mapped to '" + SERVICES_MAPPING + "'");
>>>>>>>         }
>>>>>>>     }
>>>>>>>
>>>>>>>     private void addATInitServlet(ServletContext container,
>>>>>>> AnnotationConfigWebApplicationContext ctx) {
>>>>>>>
>>>>>>>         ServletRegistration.Dynamic dispatcher =
>>>>>>> container.addServlet(
>>>>>>>           "ATInit", new ATInit());
>>>>>>>         dispatcher.setLoadOnStartup(1);
>>>>>>> dispatcher.setInitParameter("appInstance", appInstance);
>>>>>>>
>>>>>>>         // do not add mapping
>>>>>>>     }
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> On Tue, Mar 9, 2021 at 10:13 AM Kevin Lee <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi Axis2 team,
>>>>>>>>
>>>>>>>> I recently had to upgrade from Axis 1.6.3 to Axis 1.7.8 on the Java
>>>>>>>> Spring Boot codebase I work on, and struggled greatly with making the
>>>>>>>> upgrade work until I resolved the breaking change from AXIS2-5340
>>>>>>>> <https://issues.apache.org/jira/browse/AXIS2-5340> that involved
>>>>>>>> changing our axis2.xml config to properly deploy our web services.
>>>>>>>>
>>>>>>>> This breaking change is not listed clearly in the 1.7.0 major
>>>>>>>> release notes
>>>>>>>> <https://axis.apache.org/axis2/java/core/release-notes/1.7.0.html> -
>>>>>>>> it is not included alongside the other breaking changes listed up front
>>>>>>>> such as the MEP URI form change, and is tucked away in the complete
>>>>>>>> list of JIRA issues that were addressed in the release
>>>>>>>> <https://axis.apache.org/axis2/java/core/release-notes/1.7.0.html>.
>>>>>>>> The only reason why I found out about this change was by downloading 
>>>>>>>> the
>>>>>>>> binaries for 1.6.3 and 1.7.8 and stumbling upon the differences in 
>>>>>>>> default
>>>>>>>> axis2.xml configs.
>>>>>>>>
>>>>>>>> As mentioned in the issue, this seems like a rather important
>>>>>>>> breaking change that will apply to the majority of Axis2 setups and 
>>>>>>>> seems
>>>>>>>> necessary for backward compatibility. I believe it will benefit future
>>>>>>>> developers that have to do similar upgrades to make note of this 
>>>>>>>> breaking
>>>>>>>> change and include it in the 1.7.0 major release notes where it can be
>>>>>>>> visibly seen.
>>>>>>>>
>>>>>>>> Best,
>>>>>>>> Kevin Lee
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Kevin Lee (이지환)*
>>>>>> Northwestern University 2020
>>>>>> B.S. in Computer Science
>>>>>> www.kevinjihwanlee.com | (773) 647-6146
>>>>>>
>>>>>
>>>>
>>>> --
>>>> *Kevin Lee (이지환)*
>>>> Northwestern University 2020
>>>> B.S. in Computer Science
>>>> www.kevinjihwanlee.com | (773) 647-6146
>>>>
>>>
>
> --
> *Kevin Lee (이지환)*
> Northwestern University 2020
> B.S. in Computer Science
> www.kevinjihwanlee.com | (773) 647-6146
>

Reply via email to