USA Reiseroute 2015

Die Punkte markieren grob die Route. Von LA Richtung Westen über den Grand Canyon, Las Vegas, San Francisco wieder nach LA.

Die Punkte markieren grob die Route. Von LA Richtung Westen über den Grand Canyon, Las Vegas, San Francisco wieder nach LA.

Wie einige wissen haben wir 2015 eine dreiwöchige Westküstenreise unternommen. Hier einmal unsere Reiseroute.

Tag 1+2: Landung in Los Angeles und Übernachtung in Super 8, 1536 N Western Ave, Hollywood, CA 90027, USA
LA Tip: http://www.losangeles-touren.de/ deutschsprachige Touren die einen LA an einem Tag Nahe bringen.

Tag 3: Reise Richtung Westen ins Yucca Valley in den Joshua Tree Nationalpark, sehenswerter NP. Übernachtung Super 8, 57096 Twentynine Palms Highway, Yucca Valley, CA 92284, USA

Tag 4: Reise Richtung Havasu Lake, schönes Naherholungsgebiet für viele LA Einwohner. Übernachtet in Havasu Inn, 2035 W Acoma Blvd, Lake Havasu City, AZ 86403, USA

Tag 5: langer Reisetag, würde ich vielleicht beim nächsten mal anders planen. Über den Grand Canyon nach Flagstaff. Übernachtet in Howard Johnson Inn, 3300 Historic Rte 66, Flagstaff, AZ 86004, USA

Tag 6-8: Las Vegas, für jemanden der zum ersten mal da ist sehr spannend. Übernachtet in Tuscany Suites & Casino,  255 E Flamingo Rd, Las Vegas, NV 89169, USA. Hotel ist sehr zu empfehlen, nur wenig abseits des Strips aber immer noch gut fußläufig zu erreichen.

Tag 9: Durchs Death Valley mit einem Zwischenstop mitten in der Wüste im Longstreet Inn, 4400 NV-373, Amargosa Valley, NV 89020, USA

Tag 10: ein wenig ein Überbrückungstag mit dem Ende im Travel Inn Ridgecrest, 131 W Upjohn, E Ridgecrest Blvd, Ridgecrest, CA 93555, USA

Tag 11: Über den Trail of 100 Giants und den Sequioa NP Richtung Visalia. Übernachtet in Econo Lodge Sequioa, 1400 S Mooney Blvd, Visalia, CA 93277, USA

Tag 12: Durch den Sequioa NP nach Fresno, komische Route aber viel gesehen :)
Übernachtet in Red Roof Inn Fresno, 4141 N Blackstone Ave, Fresno, CA 93726, USA

Tag 13: Längere Tour, über den Yosemite NP nach Sonora. Übernachtet in Coutry Inn Sonora, 18730 CA-108, Jamestown, CA 95327, USA

Tag 14-16: Relativ lange Tour mit Outlet Zwischenstops Richtung San Francisco. Zum ersten mal im Leben Airbnb gebucht. Sehr nette Gastgeber gefunden. Adresse suche ich gerne mal raus wenn Interesse besteht.

Tag 17: San Francisco verlassen, vorbei am Silicon Valles Richtung Salinas.

Tag 18: Über das Monterey Bay Aquarium in Monterey die Route1 runter nach San Simeon ins Silver Surf Hotel, 9390 Castillo Dr, San Simeon, CA 93452, USA

Tag 19: Durch viele schöne Orte die Route1 weiter runter nach Santa Barbara. Gepennt im Town & Country Inn, 2800 State St, Santa Barbara, CA 93105, USA

Tag 20: Ein Stück ins Land weil wir eigentlich den 6Flag Freizeitpark besuchen wollten, übernachtet im Super 8 Santa Clarita, 17901 Sierra Hwy, Santa Clarita, CA 91351, USA

Tag 21: Zurück Richtung LA, letzte Übernachtung via Airbnb in Santa Monica. Nette Studentin? als Vermieterin gehabt.

Tag 22: Von Santa Monica zurück zum Flughafen und ab nach Hause.

Soap Anfragen einen Header anhängen mit Hilfe von Java

Kürzlich stand ich vor der Aufgabe gegen den WebService eines Versicherers zu arbeiten.
Nachdem die Klassen über JAX-WS erstellt waren, kam es kurz darauf zur ersten Anfrage an den WebService.

Dieser wurde auch prompt quittiert.

WSDoAllReceiver: Request does not contain required Security header
Nachdem ich die ausgehende Nachricht untersucht hatte, habe ich bemerkt, dass die Nachricht überhaupt keinen Header hat.
Den Header habe ich dann wie folgt an die Nachricht gefügt:

Service service = Service.create(QName serviceToTalk);
ServicePort servicePort = service.getServicePort();
BindingProvider bindingProvider = (BindingProvider)servicePort;
List<Handler> handlerChain = bindingProvider.getBinding().getHandlerChain();
handlerChain.add(new SOAPHeaderHandler()); //Quellcode zum SOAPHeaderHandler weiter unten
bindingProvider.getBinding().setHandlerChain(handlerChain);
// Hängt einen Header in folgender Form an den Request.
//
//<soapenv:Header>
//	<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
//		<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
//			<wsse:Username>XXX</wsse:Username>
//			<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXX</wsse:Password>
//		</wsse:UsernameToken>
//	</wsse:Security>
//</soapenv:Header>

public class SOAPHeaderHandler implements SOAPHandler<SOAPMessageContext> {

	private static final String SOAP_PW = "Password";
	private static final String SOAP_UN = "Username";
	private static final String SOAP_UNT = "UsernameToken";
	private static final String SOAP_SEC = "Security";
	private static final String NS_SEC = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
	private static final String NS_UNT = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
	private static final String NS_PW = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText";
	private static final String PREFIX_WSSE = "wsse";

	public SOAPHeaderHandler() {
		//Hier bietet sich natürlich ein parameterbehafteter Konstruktor an, um die Zugangsdaten zu verarbeiten.
	}

	@Override
	public boolean handleMessage(SOAPMessageContext context) {
		Boolean outboundProperty = (Boolean)context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
		if (outboundProperty) {
			SOAPMessage message = context.getMessage();
			try {
				SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
				SOAPHeader header = null;
				if (message.getSOAPHeader() != null)
					header = message.getSOAPHeader();
				else
					header = envelope.addHeader();

				SOAPElement security = header.addChildElement(SOAP_SEC, PREFIX_WSSE, NS_SEC);
				security.addAttribute(new QName("xmlns:wsse"), NS_SEC);
				SOAPElement usernameToken = security.addChildElement(SOAP_UNT, PREFIX_WSSE);
				usernameToken.addAttribute(new QName("xmlns:wsu"), NS_UNT);
				SOAPElement username = usernameToken.addChildElement(SOAP_UN, PREFIX_WSSE);
				username.addTextNode("XXX");
				SOAPElement password = usernameToken.addChildElement(SOAP_PW, PREFIX_WSSE);
				password.setAttribute("Type", NS_PW);
				password.addTextNode("XXX");
			}
			catch (Exception e) {
				e.printStackTrace();
			}
		}
		else {
			// Kein else, uns interessiert nur der outbound Teil
		}
		return true;
	}

	@Override
	public Set<QName> getHeaders() {
		return null;
	}

	@Override
	public boolean handleFault(SOAPMessageContext context) {
		return true;
	}

	@Override
	public void close(MessageContext context) {
		//
	}
}

Falls ihr dem ganzen auch noch einen Java KeyStore hinzufügen müsst, habe ich hier noch ein paar Informationen dazu.
Andererseits war es das schon, man beschafft sich den Port, erweitert die HandlerChain um den Header und schickt seine Anfrage auf die Reise.

//JKS hinzufügen
bindingProvider.getRequestContext().put("com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory", addSSLSocketFactory());

/**
 * Erstellt eine SSLSocketFactory die an den Header
 * gehängt wird mit den Informationen des Java KeyStores.
 * @return SSLSocketFactory
 */
private SSLSocketFactory addSSLSocketFactory() {
	SSLSocketFactory ssl = null;
	try {
		ssl = null;
		SSLContext sc = SSLContext.getInstance("SSLv3");
		KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
		String password = "XXX";
		InputStream is = ClassLoader.getSystemResourceAsStream("//pathToDir/imurx.jks");
		KeyStore ks = null;
		ks = KeyStore.getInstance("JKS");
		try {
			if (ks != null)
				ks.load(is, password.toCharArray());
		}
		catch (IOException | CertificateException exc) {
			//throw, log... exc
		}
		kmf.init(ks, password.toCharArray());
		sc.init(kmf.getKeyManagers(), null, null);
		ssl = sc.getSocketFactory();
	}
	catch (NoSuchAlgorithmException | KeyStoreException | UnrecoverableKeyException | KeyManagementException exc) {
		//throw, log... exc
	}
	return ssl;
}

 

SOAP Nachrichten in Java anzeigen

Falls ihr mal euren SOAP Nachrichtenverkehr überwachen müsst, können die folgenden Properties dabei behilflich sein.
Vor dem Austausch aufrufen und die Nachricht ist in der Ausgabe sichtbar.

System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dump", "true");

Android N Launcher ändern

Seit Heute Morgen bin ich Teil der Android N Beta. Nach dem Update wollte ich ein möglichst großes Stock-Feeling haben und wollte dafür den Nova-Launcher deaktivieren.
Der bekannte Weg über Settings -> Home war leider nicht mehr da. Deswegen habe ich es auf folgendem Weg gemacht.

Settings -> Apps -> Zahnrad (Oben rechts)

Dort im Untermenü kann man dann allerlei Einstellungen vornehmen, unter anderem die Home App ändern.

Probleme mit Hearthstone und dem Amazon App Store

Kürzlich wollte ich Hearthstone auf meinem Smartphone installieren. Bei dem Versuch das ganze aus dem Amazon Underground Store zu laden, brach die Installation nach dem Download immer ab.

Nach ein wenig Recherche, habe ich gelesen das das ganze mit dem Authenticator von Blizzard zusammenhängt. Da ich diesen gar nicht installiert hatte, habe ich stattdessen die WoW Armory App deinstalliert und siehe da, die Installation von Hearthstone funktionierte.

tl,dr;
Wer Probleme hat die Hearthstone App aus dem Amazon App Store zu installieren, muss vorher alle anderen Blizzard/Battle.net Apps deinstallieren.

SkyGo – Fehler bei Autorisierung & ein weiterer Lösungsvorschlag

Ich habe ja bereits vor einiger Zeit über das Problem mit SkyGo und der Autorisierung berichtet. Jetzt hat mich ein Besucher über eine weitere Möglichkeit aus dem Microsoft Forum aufmerksam gemacht. In meinem Fall mit Windows 8.1 x64 hat dieser Lösungsvorschlag leider nichts gebracht aber vielleicht hilft es ja jemand anders: Hier der Link zum Forenpost.

Gehen Sie bitte wie folgt vor:
1. Drücken Sie bitte die „Windows-Taste“ + „R“
2. Geben Sie nun „Notepad.exe“ ein und bestätigen dieses mit „Ok“
3. Kopieren Sie bitte den Kursiv geschriebenen Text und fuegen diesen in Notepad ein.


wmic product where caption='Microsoft Silverlight' call uninstall
reg delete HKLM\Software\Microsoft\Silverlight /f
reg delete HKEY_CLASSES_ROOT\Installer\Products\{D7314F9862C6​48A4DB8BE2A5B47BE100} /f
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Prod​ucts\{D7314F9862C648A4DB8BE2A5B47BE100} /f
reg delete HKEY_CLASSES_ROOT\TypeLib\{283C8576-0726-4DBC-9609​-3F855162009A} /f
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr​entVersion\App Paths\install.exe /f
reg delete HKEY_CLASSES_ROOT\AgControl.AgControl /f
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr​entVersion\Uninstall\{89F4137D-6C26-4A84-BDB8-2E5A​4BB71E00} /f
rmdir /s /q "%ProgramFiles%\Microsoft Silverlight"
rmdir /s /q "%ProgramFiles(x86)%\Microsoft Silverlight"
rmdir /s /q C:\ProgramData\Microsoft\PlayReady
Ipconfig /FlushDNS

4. Klicken Sie auf die Datei und „Speichern unter“ und geben Sie CleanSilverlight.cmd als Dateinamen ein
4.1 Im Feld „Speichern unter“ klicken Sie bei Dateityp auf „Alle Dateien“
4.2 Waehlen Sie links nun unter Favoriten, Desktop aus  und klicken auf Speichern
5. Schliessen Sie nun Notepad
6. Rechtsklicken Sie auf die Datei CleanSilverlight.cmd und wählen Sie als Administrator ausführen aus
7. Wenn die Deinstallation abgeschlossen ist, wiederholen Sie bitte den Vorgang nochmals
8. Laden Sie bitte unter folgenden Link Ihre Silverlight Version herunter

64-Bit: http://silverlight.dlservice.microsoft.com/download/5/5/7/55748E53-D673-4225-8072-4C7A377BB513/runtime/Silverlight_Developer_x64.exe
32-Bit: http://silverlight.dlservice.microsoft.com/download/5/5/7/55748E53-D673-4225-8072-4C7A377BB513/runtime/Silverlight_Developer.exe
9. Klicken Sie auf den Start-Button, Alle Programme, Microsoft Silverlight und dann auf Microsoft Silverlight.
10. In dem Fenster was sich nun geöffnet hat klicken Sie bitte auf den Reiter Updates und wählen „Nie nach Updates suchen“ aus
11. Starten Sie nun bitte Ihren Rechner neu und testen Verhalten

Battlefield 4 Emblem importieren und exportieren

Da ich kürzlich mit Battlefield 4 angefangen habe und die Funktion mit den Emblemen sehr gut finde, will ich euch mal eben zeigen wie Ihr Embleme von anderen importieren könnt oder euer selbst erstelltes mit anderen teilen könnt.

Grundsätzlich braucht ihr Google Chrome oder Firefox als Browser.
Zum importieren braucht ihr natürlich noch ein geeignetes Emblem, die Seite http://emblemsbf.com/ bietet ein großes Kontingent an richtig gut designten Emblemen.

Google Chrome

Mozilla Firefox

Code exportieren:
Wieder in die Console wechseln und folgenden Befehl angeben:

$(‚body‘).html(‚<pre style=“color:#000;“>emblem.emblem.load(‚+JSON.stringify(emblem.emblem.data,null,2)+‘);</pre>‘);

Danach den erscheinenden Code einfach komplett kopieren und verteilen.

Viel Spaß damit!

 

 

SkyGo „Fehler bei Autorisierung“ – Probleme mit SilverLight

Ich hatte seit neustem Probleme auf meinem Notebook SkyGo zu schauen.
Mit der Fehlermeldung „Fehler bei Autorisierung“ ohne jegliche Fehlernummer, wurde das laden des Streams jedes mal unterbrochen.
Nach ein wenig rumprobieren und mehrfaches Wechseln des Browsers habe ich eine andere Version von Silverlight installiert und hatte damit endlich Glück.

Habe jetzt eine Entwicklerversion installiert mit der Versionsnummer: Silverlight 5 Build 5.0.61118.0 Released December 9, 2011
Herunterzuladen unter: Microsoft Entwicklerseite
Direkter Download: Windows 32-Bit Betriebssystem – Windows 64-Bit Betriebssystem – MAC (Intel Prozessor)

  • Vorgehensweise:
  • Das alte SilverLight deinstallieren
  • Die Entwicklerversion herunterladen
  • Datei öffnen und installieren
  • Anschließend den Browser neustarten
  • Zu guter letzt noch Silverlight ausführen und die automatischen Updates deaktivieren

Hoffe es hilft euch weiter!

Edit: Das ganze trat bei einem anderen Rechner auch auf mit dem Fehler „AG_E_DRM_OUTPUT_PROTECTION FAILURE„.
Leider sagt der Fehler nichts aus, Problemlösung funktioniert aber genau wie oben beschrieben.