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
