Got it, that clarifies why that didn't work. That would be great to add in
the documentation too!

On Wed, Mar 10, 2021 at 11:30 AM robertlazarski <[email protected]>
wrote:

> 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
>>
>

-- 
*Kevin Lee (이지환)*
Northwestern University 2020
B.S. in Computer Science
www.kevinjihwanlee.com | (773) 647-6146

Reply via email to