Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To be moved to github soon

VersionReleasedSuccessfully Tested
1.51/2018eTravel, Workflow, ePayment in Jan. 2018 for KFS6 upgrade


Clients

eTravel -  calls the getAccountByPrimaryId ws and the isActive ACH ws

Workflow - calls the getAccountByPrimaryId, getAccountSupervisorDelegateByPrimaryId, and getAccountDelegateByPrimaryId

ePayment - calls the getPayeeACHAccountByPrimaryId ACH ws

Generating JAX-WS Artifacts

Use SoapUI to do generate the stubs.  Go to this wiki page for step by step instructions.

Note

The auto generated stubs

...

for the ACH service weren't copied as is to this library. The primary interface classes were modified to be more human readable. For the ACH web service, ACHWebServicePortType.java was renamed (and modified to reflect the current @WebService name) to UhACHWebService.java and ArrayOfPayeeACHAccountWebType.java was renamed to PayeeACHAccount.java. SoapUI will generate a class named UhACHWebService.java but it's just a sample client application so that class doesn't need to be copied into this library.


Note

For the account web service, all classes were copied over as is except for UhAccountWebService (because it's a sample client application) and UhAccountWebServicePortType.java was renamed (and modified to reflect the current @WebService name) to UhAccountWebService.java.

Troubleshooting

eTravel and ePayment have unit tests for the web services so that's the quickest and easiest way to test the web services because they give more information on what is actually wrong.  The log files for either app don't show the level of detail in the logs that the unit tests do.

Warning
titleMarshalling error

See KFSUP-13 for more info and

Between KFS4 and KFS6, the uri changed for the AchWebService from http://util.java to http://businessobject.pdp.kfs.its.hawaii.edu so this library had to be rebuilt to account for that difference. 

...

Warning
titleFailed to Create Service

See SADMIN-5084 and SADMIN- 7236 for more info

We're constantly running into this problem during the quarterly upgrades for Java.  When this error occurs, it's almost guarantee that the root ca certs are not in the JDK's cacerts keystore.  The SAs have just been copying the cacerts from the old version to the new version instead of importing the certs directly into the cacerts keystore.

...

Warning
title301 Moved Permanently

See KFSUP-10 for more info

The issue was caused by incorrect registry url endpoints defined in KFS.  To resolve, KFS needs to be built with the correct endpoints.

Code Block
2017-06-21 10:59:05,887 [http-172.16.4.183-9584-3] [user cahana | sessionId 57108BAE3F4AD933F48EB273EC65ACE6] WARN  org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {KFS}UhAccountWebService#{KFS}getAccountByPrimaryId has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Response was of unexpected text/html ContentType.  Incoming portion of HTML stream: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://test6.kfs.hawaii.edu/kfs-tst6/remoting/UhAccountWebService">here</a>.</p>
<hr>
<address>Apache/2.2.15 (Red Hat) Server at test.kfs.hawaii.edu Port 443</address>
</body></html>


Warning
titleService Construction Exception

See stackoverflow post for more info

This problem arose when the delegation web service method was blowing up.  I recreated the stubs through SoapUI, updated the references to those stubs and the error below was thrown. To resolve, I added the number 2 at the end of each XmlType annotation "name" attribute in all of the Get*.java classes.

Code Block
Caused by: org.apache.cxf.service.factory.ServiceConstructionException
	at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:339)
	at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:432)
	at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:528)
	at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:278)
	at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:179)
	at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:99)
	at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:51)
	at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:102)
	at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:115)
	at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:458)
	at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:330)
	... 73 more
Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 10 counts of IllegalAnnotationExceptions
Two classes have the same XML type name "{KFS}getSubAccountByPrimaryId". Use @XmlType.name and @XmlType.namespace to assign different names to them.
	this problem is related to the following location:
		at edu.hawaii.its.kfs.coa.jaxws_asm.GetSubAccountByPrimaryId
	this problem is related to the following location:
		at edu.hawaii.its.kfs.coa.businessobject.GetSubAccountByPrimaryId
		at public edu.hawaii.its.kfs.coa.businessobject.GetSubAccountByPrimaryId edu.hawaii.its.kfs.coa.businessobject.ObjectFactory.createGetSubAccountByPrimaryId()
		at edu.hawaii.its.kfs.coa.businessobject.ObjectFactory
		at protected javax.xml.bind.JAXBElement edu.hawaii.its.kfs.coa.businessobject.UhSubAccountWebType.accountCrosswalkIdent
		at edu.hawaii.its.kfs.coa.businessobject.UhSubAccountWebType
		at private edu.hawaii.its.kfs.coa.businessobject.UhSubAccountWebType edu.hawaii.its.kfs.coa.jaxws_asm.GetSubAccountByPrimaryIdResponse._return
		at edu.hawaii.its.kfs.coa.jaxws_asm.GetSubAccountByPrimaryIdResponse


Note
titleTesting Matrix for KFS6 upgrade

https://docs.google.com/document/d/1PdoJ4OZroUbDUzFEJWblchfwApeMAm2VN-0meFJkdc4/edit


Publish New Version to Nexus

Push locally

  • download project
  • execute "mvn clean deploy"
    • executing "mvn source:jar deploy" will attempt to push the source jar twice because the pom.xml is configured to generate the source so don't run this command
    • pom.xml is configured to push to our Nexus repo
    • <id> between <repository> in pom.xml and <server> in settings.xml must match

      Code Block
      <distributionManagement>
      	<repository>
      		<id>UH</id>
      		<name>releases</name>
      		<url>https://docprod.pvt.hawaii.edu/nexus/repository/maven-releases</url>
      		<layout>default</layout>
      	</repository>
      </distributionManagement>


    • ~home/.m2/settings.xml is configured use your username/password

      Code Block
      <servers>
      	<server>
      		<username>[nexus username]</username>
      		<password>[nexus password]</password>
      		<id>UH</id>
      	</server>
      </servers>
      
      


  • Troubleshooting
    • if the artifact already exists in Nexus, you'll receive the following error because you can't overwrite it if it already exists

      Code Block
      [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project kfs-webservice-client: Failed to deploy artifacts: Could not transfer artifact edu.hawaii.its.kfs:kfs-webservice-client:jar:sources:1.5 from/to UH (https://docprod.pvt.hawaii.edu/nexus/repository/maven-releases/): Failed to transfer file: https://docprod.pvt.hawaii.edu/nexus/repository/maven-releases/edu/hawaii/its/kfs/kfs-webservice-client/1.5/kfs-webservice-client-1.5-sources.jar. Return code is: 400, ReasonPhrase: Bad Request. -> [Help 1


    • If the username/password is incorrect or if the user doesn't have the necessary permissions in Nexus, you'll receive the following error

      Code Block
      [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project kfs-webservice-client: Failed to deploy artifacts: Could not transfer artifact edu.hawaii.its.kfs:kfs-webservice-client:jar:1.5 from/to central (https://docprod.pvt.hawaii.edu/artifactory/libs-release-local): Failed to transfer file: https://docprod.pvt.hawaii.edu/artifactory/libs-release-local/edu/hawaii/its/kfs/kfs-webservice-client/1.5/kfs-webservice-client-1.5.jar. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]


Push via Jenkins

  • execute job ...