Construct $x$
from an unconstrained vector $u$
$$\eqalign{
\def\qiq{\quad\implies\quad}
\def\s{\oslash}
\def\h{\odot}
\def\o{{\tt1}}
\def\P{\frac{\o}{\pi}}
\def\PK{\frac{\o}{\|p_k\|}}
\def\p{\partial}
\def\e{{\large\varepsilon}}
\def\l{\lambda}
\def\c#1{\color{red}{#1}}
\def\BR#1{\Big(#1\Big)}
\def\LRB#1{\left[#1\right]}
\def\LR#1{\left(#1\right)}
\def\fracLR#1#2{\LR{\frac{#1}{#2}}}
p &= \tfrac12\, u\h u &\qiq &p\ge0,\quad\pi = \|p\| \\
U &= \operatorname{Diag}(u) &\qiq &dp = u\h du = U\,du \\
x &= \frac{p}{\|p\|} &\qiq &\|x\| = \frac{\|p\|}{\|p\|}=\o \\
&&\qiq &x\ge0 \\
\\
dx &= \LR{\frac{\pi^2\,I-pp^T}{\pi^3}}dp
&\quad\;\;=&\P\LR{I-xx^T}U\,du \\
}$$
where $\h$ denotes the elementwise/Hadamard product.
Rewrite the objective and calculate the gradient wrt $u$
$$\eqalign{
\l &= w^Tx \\
d\l
&= w^T\,\c{dx} \\
&= w^T\,\c{\P\LR{I-xx^T}U\,du} \\
&= \P\BR{U\LR{I-xx^T}w}^Tdu \\
&= \P\BR{w\h u -(w^Tx)\,(x\h u)}^T du \\
\frac{\p \l}{\p u} &= \P\BR{w -(w^Tx)\,x}\h u \\
}$$
This gradient expression can be used in a gradient descent iteration
$$\eqalign{
p_k &= \tfrac12\,u_k\h u_k \\
x_k &= \frac{p_k}{\|p_k\|} \\
g_k &= \frac{u_k}{\|p_k\|}\h\BR{w -(w^Tx_k)\,x_k} \\
u_{k+1} &= u_k - \sigma_k\,g_k \\
k &= k+\o \\
}$$
where the recipe for the step length $\sigma_k$ differs from algorithm to algorithm.
A good starting point for the iteration is to find the minimum component of $w$ $$j=\arg\min_j(w)$$ and set $u=40\,\e_j\:$ (the corresponding cartesian basis vector).
This would be the exact solution to the related problem with $\|x\|=\|x\|_\o$
and will be closer to the solution of the current problem with $\|x\|=\|x\|_2\:$
than a random guess.