Change Jenkins Timezone

To see what time zone your jenkins is uning, in your browser navigate to:

 

http://servername:port/systemInfo

 

To change the jenkins timezone, in the Jenkins base directory, edit jenkins.xml

change this line:

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar “%BASE%\jenkins.war” –httpPort=8080</arguments>

to this:

<arguments>-Xrs -Xmx256m -Duser.timezone=”Europe/London” -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar “%BASE%\jenkins.war” –httpPort=8080</arguments>

Restart that bad boy.

No adapter for endpoint

“Is your endpoint annotated with @Endpoint, or does it implement a supported interface like MessageHandler or PayloadEndpoint?”

I spent more time* figuring out the cause of this exception than Sylvinho spent marauding down the left wing for Arsenal.

For a long time I thout it was due to the fact that I was trying to declare two methods in one endpoint class. I knew it wasnt the problem as I had seen it done.

I read elsewhere that the problem may have been a dependency clash / maven issue, again this was not the case.

 

The issue was that I was not consistent from my xsd right through to the service method. A simple example of what I was doing:

 

My xsd:

<xsd:element name=”CreateAccountRequest”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”AccountDetails” type=”account:Account”/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name=”CreateAccountResponse“>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”accountID” type=”xsd:string“/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

my service endpoint was:

@PayloadRoot(localPart = “CreateAccountRequest”, namespace = TARGET_NAMESPACE)
public @ResponsePayload
String createAccount(
@RequestPayload CreateAccountRequest request) {

return (“31″);
}

 

my endpoint needed to be:

@PayloadRoot(localPart = “CreateAccountRequest”, namespace = TARGET_NAMESPACE)
public @ResponsePayload
CreateAccountResponse createAccount(
@RequestPayload CreateAccountRequest request) {

CreateAccountResponse response = new CreateAccountResponse();

response.setAccountID(“31″);
return response;
}

ie – my xsd was calling for a CreateAccountResponse object to be returned containing a String, I was simply trying to return a String.

 

 

 

Sylvinho.jpg

*he was at Arsenal for 2 years, I didnt spend quite two years figuring this out.

Git commands I frequently use but never remember…

  1. Delete a remote git branch but keep it locally:

git push origin :branchname

Spring Exceptions and Errors

I am learning how spring works so as a reference for myself here are some errors and or exceptions that have had me wondering whats going on. While working through Brians excellent Java Blog for Spring novices, I tried setting up his Service but customised to my own applications needs.

 

  1. Endpoint mapping [org.springframework.ws.soap.server.endpoint.mapping.SoapActionAnnotationMethodEndpointMapping@25dad8eb] has no mapping for request  - Cause by having the wrong payload root localpart set in the endpoint java class.

JAXB Exceptions Errors

org.xml.sax.SAXParseException: The processing instruction target matching “[xX][mM][lL]” is not allowed.

You cant have spaces before the start of your XML schema.

JavaScript Testing

Mark Ethan Trostler conducts a tutorial on getting started with JavaScript testing.

How to architect your app so the JS can be tested. A good lesson in some sound design principles not just for JavaScript.

  • Redis is a database / storage option. Redis stores everything as a string (the protocol is text-based). Redis is accessed via a binding in Node.js.
  • Amazon S3 is a storage / database solution.
  • No object should be forced to depend on methods it doesn’t need.
  • Keep Different Functionality Separate.
  • Video shows an example of a JavaScript interface and implementation.

JavaScript Performance Tuning Secrets

Peter Flynn Performance Tuning Secrets (JavaScript)

 

Overviews Chrome tools to measure JavaScript speed / latency etc. USeful to know these tools exist even if I cant see a need to use them anytime soon.

Follow

Get every new post delivered to your Inbox.