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 >
